райтап по крэкми с анти-дебаг защитой IsDebuggerPresent обход
Рейтинг: 69.1% · 33 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
райтап по крэкми с анти-дебаг защитой IsDebuggerPresent обход
Застрял на крэкми с crackmes.one, уровень 3/6. Бинарь под Windows x86-32. При запуске под x64dbg программа сразу вылетает с 'wrong'. Судя по всему, там анти-дебаг. Нашёл вызов IsDebuggerPresent, запатчил возвращаемое значение на 0 через условный перехват — но всё равно падает. Есть ещё что-то, что я пропускаю?
✔ Лучший ответ выбран автором и совпадает с автоматическим подбором — oleg5897
ScyllaHide реально спасает жизнь в таких случаях. Но если хочешь разобраться руками — вот полный список того что стоит проверить: 1) PEB.BeingDebugged (тот самый IsDebuggerPresent), 2) PEB.NtGlobalFlag (значение 0x70 при дебаггере), 3) heap flags в PEB.ProcessHeap, 4) NtQueryInformationProcess с классом 7 (ProcessDebugPort), 5) timing-атаки через RDTSC или GetTickCount — если между двумя вызовами…
Re: райтап по крэкми с анти-дебаг защитой IsDebuggerPresent обход
IsDebuggerPresent — это лишь один из десятка способов. Следующий кандидат — CheckRemoteDebuggerPresent, его часто ставят в паре. Ищи в импортах или через строковый поиск 'NtQueryInformationProcess' — там флаг ProcessDebugPort тоже выдаёт дебаггер. В x64dbg есть плагин ScyllaHide, он закрывает большинство стандартных техник одним кликом.
Re: райтап по крэкми с анти-дебаг защитой IsDebuggerPresent обход
✔ Лучший ответ — выбран автором и совпадает с авто-подбором
ScyllaHide реально спасает жизнь в таких случаях. Но если хочешь разобраться руками — вот полный список того что стоит проверить: 1) PEB.BeingDebugged (тот самый IsDebuggerPresent), 2) PEB.NtGlobalFlag (значение 0x70 при дебаггере), 3) heap flags в PEB.ProcessHeap, 4) NtQueryInformationProcess с классом 7 (ProcessDebugPort), 5) timing-атаки через RDTSC или GetTickCount — если между двумя вызовами прошло слишком много времени, значит шагают по коду. Для RDTSC-трюков помогает плагин 'FixTSC' или патчинг самих инструкций.
Re: райтап по крэкми с анти-дебаг защитой IsDebuggerPresent обход
Тайминговые проверки вообще самые неприятные — их скриллой не обойдёшь. Я обычно ищу паттерн: два вызова RDTSC подряд, между ними какая-то операция, потом cmp и jmp. Патчу jmp на безусловный или просто ставлю брейк после второго RDTSC и руками правлю регистры.
Re: райтап по крэкми с анти-дебаг защитой IsDebuggerPresent обход
Можешь скинуть хэш бинаря или ссылку? Интересно глянуть. В крэкмях уровня 3 ещё иногда встречается SEH-антидебаг — намеренно вызывают исключение и проверяют кто его обрабатывает. Под отладчиком исключение перехватывает дебаггер, а не обработчик программы, и ветка кода идёт другая.
- ruslan_py40
- Сообщения: 5
- Зарегистрирован: Вс май 10, 2026 10:03 pm
Re: райтап по крэкми с анти-дебаг защитой IsDebuggerPresent обход
Ещё вариант который часто забывают — проверка родительского процесса. Если ppid не explorer.exe (или конкретный лаунчер), программа считает себя запущенной под дебаггером. Лечится либо плагинами, либо запуском x64dbg от имени Explorer через inject.
Поделиться темой:
✈ Telegram
VK
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость