Обнаружение SoftICE путем вызова INT 3h


  Share  
|


Это один из наиболее известных противопехотных отладки трюки, и она использует задней двери в 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 будет обеспечивать, чтобы программа продолжит с; Ошибка ярлыка. 
  ;------------------------------------------------- ------------------------------------------------ заканчивается 
  Начало конца 
  ; конец программы 
это статья добавлена Сам Петроне

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions