PEB.BeingDebugged - IsDebuggerPresent()

Функция BOOL WINAPI IsDebuggerPresent() - kernel32.dll

  • Функция WinAPI, выясняющая находится ли программа под отладчиком. Функция возвращает EAX = 1 – если процесс запущен под отладчиком, EAX = 0 – в противном случае.
  • Если копнуть в саму функцию, то она просто читает байт-флаг PEB.BeingDebugged (расположен по смещению 2 в структуре PEB).
  • Защита от обнаружения – обнулить PEB.BeingDebugged, или обнулить результат по выходу из функции (EAX = 0). В OllyDbg нажать Ctrl+G (Goto Expression) и впечатать fs:[30h]. В окне отобразится PEB. Для редактирования жмем Ctrl+E.
  • Пример кода:

PEB.BeingDebugged

  • PEB.BeingDebugged – 2-й байт в структуре Process Environment Block процесса. Он устанавливается в 1 самой системой, когда процесс запущен под отладчиком. Это чисто информационный флажок, поэтому смело можно сбрасывать в 0 без ущерба для программы.
  • Пример кода:

или

Обратно к содержанию

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License