Обнаружение SoftICE путем вызова INT 3h
Это один из наиболее известных противопехотных отладки трюки, и она использует задней двери в SoftICE себя. Она работает во всех версиях Windows, и она основана на призыв INT 3h с регистров, содержащий следующие значения: EAX = 04h и EBP = 4243484Bh. Это фактически "BCHK" строка. Если SoftICE активен в памяти, в EAX регистр будет содержать значение, помимо 4. Этот трюк часто используется в коде различных компрессии и кодирования программ, и она хорошо известна, поскольку ее широкое использование. При хорошо, это может вызвать проблемы даже для более опытных крекеры. .386 . модель плоской, STDCALL местные прыжки UNICODE = 0 включить w32.inc Extrn SetUnhandledExceptionFilter: PROC. Данных message3 message2 delayESP предыдущих. Код БД "Обнаружение по телефону INT 3h", 0 дБ "SoftICE найден", 0 дБ "SoftICE не найден", 0 дд 0 ; в ESP регистре сохраняется здесь. дд 0; в регистр ESP будет сохранен адрес из ; предыдущие SEH службы здесь. Начало: ;------------------------------------------------- ----------------------------------------------- -; Наборы SEH в случае ошибки ;------------------------------------------------- ------------------------------------------------ mov [delayESP], особенно нажимаем компенсировать ошибки слово SetUnhandledExceptionFilter mov [предыдущая], eax ;------------------------------------------------- ------------------------------------------------ ; Новый адрес Структурированная обработка исключений (SEH) установлена здесь, чтобы в случае возникновения ; ошибка, программа будет продолжаться от ошибку ярлык и закончится правильно. Это важно ; если, например, программа Вызвал прерывать, что будет выполняться правильно, только если SoftICE ; активен, но вызовет ошибку и аварийному завершению программы, если SoftICE не активен. ; Наконец, в предыдущем SEH службы адрес сохранены. ;------------------------------------------------- ------------------------------------------------ eax, 4 mov ebp, "BCHK" int 3h нажимаем eax; "магические" значения можно найти; ли SoftICE активен ; называет INT 3h перерыва; сохраняет Возвращаемое значение ;------------------------------------------------- ------------------------------------------------ ; Наборы предыдущих SEH службы ;------------------------------------------------- ------------------------------------------------ нажать dword ptr [предыдущая] слово SetUnhandledExceptionFilter ;------------------------------------------------- ------------------------------------------------ ; Наборы подлинные SEH службы адрес ;------------------------------------------------- ------------------------------------------------ поп eax cmp eax, 4 jnz перейти далее:; восстанавливает Возвращаемое значение ; испытаний ли eax была изменена; если она была изменена, SoftICE активен; в память слово MessageBoxA, 0, компенсируется message2, \ компенсируется message1, 0 ;------------------------------------------------- ------------------------------------------------ ; Если Возвращаемое значение 4 SoftICE не найден и программа выводит сообщение об ошибке. ;------------------------------------------------- ------------------------------------------------ слово ExitProcess , -1 ; заканчивается программа перейти: слово MessageBoxA, 0, компенсируется message3, \ компенсируется message1, 0 ;------------------------------------------------- ------------------------------------------------ ; Отображает сообщение о том, что SoftICE был найден; любой код может следовать этому вопросу. ;------------------------------------------------- ------------------------------------------------ слово ExitProcess , -1 ; заканчивается программа ошибка: ; начинается новый SEH услуг в случае ошибки. mov особенно, [delayESP] далее нажимаем компенсируется ret ;------------------------------------------------- ------------------------------------------------ ; Если ошибка в программе, SEH будет обеспечивать, чтобы программа продолжит с; Ошибка ярлыка. ;------------------------------------------------- ------------------------------------------------ заканчивается Начало конца ; конец программы это статья добавлена Сам Петроне
|
|||
|