Обнаружение SoftICE искали памяти


  Share  
|


Это обнаружение в памяти обыски в V86 режиме для WINICE.BR строки. Поскольку этот метод используется довольно редко, это заслуживает рассмотрения, хотя она может быть использована только в Windows 9x.

Это обычные могут быть легко скрыта, поскольку она не требует использовать (ни API, ни INT). Это сделает невозможным для обнаружения, и, если использовать его так, он может с какой-либо попытки отладки для злоумышленнику сделать программу продолжать, ему придется изменить свою кода или регистра содержимого.

Чтобы открыть для отладки попытка, все что вам нужно сделать, это проверить после этот трюк, или регистров содержат значения, что они должны содержать, и вам нужно провести испытания КПР ли программный код был изменен в памяти. Если SoftICE не в памяти активных, ваши обычные проверки будет запускаться без проблем.

Этот метод один недостаток заключается в том, что она хорошо работает только с более старыми версиями SoftICE, и ошибка произойдет, если один из SoftICE в новой версии активно памяти.

 .386 
  . МОДЕЛЬ FLAT, STDCALL местные 
  прыжки 
  UNICODE = 0 
  включить w32.inc 
  Extrn SetUnhandledExceptionFilter: PROC. Данных message2 message3 delayESP предыдущих БД "Обнаружение в памяти поиск", 0 дБ "SoftICE не найден", 0 дБ "SoftICE найден", 0 дд 0; В ESP регистре экономит здесь дд 0; В регистр ESP будет сохранен адрес в 
  ; предыдущие SEH службы здесь. 
  . код 
  Начало: 
  ;------------------------------------------------- ------------------------------------------------; Наборы SEH в случае ошибки 
  ;------------------------------------------------- ------------------------------------------------ mov [ delayESP], особенно нажимаем компенсировать ошибки 
  слово SetUnhandledExceptionFilter mov [предыдущая], eax mov др., "W" 
  mov ЭОД, 10000h mov ecx, 400000h - 10000h больше: repnz SCASB jecxz notfound 
  cmp dword ptr [ЭОД] ", INIC" jz found1 jmp более found1: добавить ЭОД, 4 
  cmp dword ptr [ЭОД] ", RB.E" jnz более нажимаем слово ptr 1 
  jmp короткий найти notfound: нажимаем слово ptr 0; ищет WINICE.BR строку; V86 памяти; начинается поиск здесь 
  ; задает число байтов для поиска 
  ; ищет "W" строки в памяти; если строка не найден, то поиск памяти; заканчивается, поскольку SoftICE не в памяти активных.  ; , когда "W" строка находится, это испытания видеть; ли "INIC" комбинация следующим образом.  ; заканчивается, когда "INIC" находится 
  ; иначе она всех поисков памяти 
  ; шаг 4 символов (байт) 
  ; , когда "WINIC" установлено, проверяет ли; "Е. РБ" следующие строки 
  ; если этого не произойдет, память поиск заканчивается; искать здесь, если SoftICE активен в памяти и; сохранить 1 в стек, чтобы показать, что SoftICE; не было обнаружено. 
  ; Go здесь, если SoftICE не найдены в памяти. 
  найти: 
  ;------------------------------------------------- ------------------------------------------------; Наборы предыдущие SEH службы 
  ;------------------------------------------------- ------------------------------------------------ нажать dword ptr [предыдущая] 
  слово SetUnhandleExceptionFilter 
  ;------------------------------------------------- ------------------------------------------------ поп ax испытания ax, ax jnz перейти далее:; восстанавливает возвращения стоимости; испытаний ли Возвращаемое значение 1; если это, программа прыжков, поскольку SoftICE является; Активные. 
  слово MessageBoxA, 0, компенсируется message2, \ компенсируется message1, 0 
  слово ExitProcess, -1 
  перейти: 
  слово MessageBoxA, 0, компенсируется message3, \ компенсируется message1, 0 
  слово ExitProcess, -1 
  Ошибка:; начинается новый SEH услуг в случае ошибки 
  mov особенно, [delayESP] нажимаем компенсируется продолжать ret 
  заканчивается 
  Начало конца 
это статья добавлена Сам Петроне

Share  

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