• Czym jest SFC/WFP/SFP?
  • Czemu wyłączać?
  • Potrzebne narzędzia
  • HOW-TO
  • Refs

Czym jest SFC/WFP/SFP?

SFC czyli System File Checker jest programem, który posiada liste plików systemowych zawierających 'wzorce’. Porównując pliki systemowe ze wzorcem, potrafi stwierdzić, czy jest to plik autentyczny, czy tez fake. Dzięki temu plik podstawiony, lub zawirusowany, jest automatycznie usuwany i zastąpiony oryginałem.
Skąd brane są oryginały? W Pierwszej kolejności z katalogu instalacyjnego. Jego położenie można odczytać z klucza rejestru HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSetupSourcePath. Jeśli jest to CD lub dysk sieciowy, powinna pojawić się prośba o włożenie nośnika. Ale często takie pytanie nie pojawia się, a pliki i tak są nadpisywane… Innymi katalogami gdzie są przetrzymywane kopie plików jest katalog %windir%system32dllcache, ale ponieważ i tam często zmiana nie daje rezultatu, i system skądś te pliki wyciąga myślę, że część z nich jest przetrzymywana w pamięci.

Wiem, że tego rodzaju stweirdzenie jest bardzo nieprofesjonalne, ale nie chciało mi się czytać stosu artów, żeby dotrzeć do tej informacji. Jeśli kiedyś na nią trafię [lub ktoś mi powie] nie omieszkam zupdate’ować tego kawałka.

SFC jest jednak tylko narzędziem, z którego można samemu skorzystać w każdej chwili, co więc odpowiada, za podmiany plików? Jest to serwis Windows File Protection (WFP), który korzysta z sfc.
Często dla ułatwienia (; używa się jeszcze jednego skrótu – SFP, czyli System File Protection. Generalnie SFP=WFP+SFC.

Czemu wyłączać?

Ogólnie idea ochrony plików jest bardzo pozytywna i dla większości userów zbawienna. Co jednak, jeśli się chce używać mniej standardowych narzędzi? przykładami może być – możliwość uruchomienia dwóch sesji terminalowych na wXP, co wymaga podmiany biblioteki systemowej odpowiedzialnej za terminal services, podmiana pliku notepad.exe, wymiana standardowo instalowanego mstsc [klient terminali] na nowego, dostarczanego z windows 2oo3 sp1… i inne. Przykładów można podawać wiele, fakt jest jeden – czasem warto to wyłączyć. Sposób nie jest trywialny… i chyba na szczęście, bo przeciętny user tego sam nie zrobi.

Potrzebne narzędzia

Z niewiadomych powodów, z wersji na wersję, Microsoft coraz bardziej utrudnia wyłączenie tego serwisu. O ile w przypadku systemów w2k wystarczyło zmienić wpis w rejestrze, o tyle w wXP trzeba się pobawić hex edytorem i pomienić plik systemowy, co znacząco wydłuża cały proces.
Aby wyłączyć WFP należy zaopatrzeć się w:

  • HEX edytor – polecam pspad,
  • program do podmiany plików chronionych
  • trochę czasu.

HOW-TO

Krok 1 – modyfikacja scf_os.dll

Najpierw trzeba skopiować plik sfc_os.dll z katalogu %windir%system32 [opis, który czytasz jest dla wXP z zainstalowanym Service Packiem 2 – dla innych wersji, patrz w refsach] pod inną nazwą – powiedzmy, że 'scf_os1.dll’.
Teraz trzeba otworzyć kopię pliku hex edytorem, i przejść do offsetu 0xECE9. Powinny się tam znajdować wartości ’33 C0 40′ – jeśli są inne to znaczy, że masz inną wersję systemu lub otwarty został nie ten plik. Można jeszcze sprawdzić wersję biblioteki [prawy guzik na pliku sfc_os.dll -> właściwości -> wersja] – opisywana tutaj powinna mieć numer 5.1.2600.1106.

Jeśli mimo wszystko wartości nie zgadzają się – nie kontynuuj.
Wartości ’33 C0 40′ należy zamienić na ’90 90 90′.

Krok 2 – modyfikacja wartości w rejestrze

Po edycji pliku trzeba wyedytować klucz rejestru HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSFCDisable i wpisać tam wartość 'FFFFFF9D’. Jeśli klucza nie ma, należy go założyć [jako REG_DWORD].

Krok 3 – Podmianka pliku

W artach, które można znaleźć w necie piszą o zwykłej podmiance plików [refs] poleceniem copy. Nie mam pojęcia w jaki sposób udało się to komuś zrobić z zalockowanym plikiem systemowych – sprawdzałem nawet w safemode i zwraca acc denied – co jest całkiem zrozumiałe. Aby podmienić te pliki można uruchomić Recovery Console [np. z płyty instalacyjnej], odpalić jakiś live-os typu knoppix z możliwością zapisu na partycjach NTFS [knoppix tego niestety nie potrafi] lub najłatwiej – skorzystać z programiku, który potrafi podmienić pliki podczas bootwania. Programik 'moveltr’ można zassać z obszernego artu na temat hacków WFP. Na wszelki wypadek umieściłem go w niezmienionej postaci tutaj.

Komenda, którą należy wykonać to: moveltr %windir%system32sfc_os1.dll %windir%system32sfc_os.dll i potwierdzić nadpisanie pliku. Teraz wystarczy zrestartować system.

Refs

  • Hacking WFP – obszerny opis różnych obejść, kilka ciekawych toolsów.
  • tweak XP – opis po angielsku. Brakuje informacji w jaki sposób poradzić sobie z podmianą pliku, ponieważ przeważnie nie da się tego zrobić instrukcją copy.
  • WFP – opis Windows File Protection
  • SFC – opis składni na stronach Microsoft
  • PsPad – najlepszy darmowy edytor textowy, posiada również możliwość edycji plików binarnych w postaci hexadecymalnej (HEX editing).
  • Recovery Console – instalacja i używanie
  • Disable WFP/SFP/SFC – jak wyłączyć w innych systemach
-o((:: sprEad the l0ve ::))o-