Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Проверка на отладчик через PEB

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
21 Июн 2025
Сообщения
115
Реакции
5
может мне кто то объяснить? почему люди по сей день для проверки на отладчик используют вин апишную функцию, которую не любят антивирусы и которая очень легко обходится по peb если можно сделать так:

asm:
Expand Collapse Copy
    xor rax, rax
    mov rax, [gs:0x60]    
    cmp byte [rax+2], 1    
    je debugger_found_opcode

то есть, по смещению 0x60 лежит указатель на peb
потом смещение на 0x02 байта где находится байт проверки на отладку

после чего проверка установлен ли 1(3 строчка) peb флаг устанавливает однерку если моя прога запущена под отладчиком

PEB->BeingDebugged
.
то есть, программа видит, что используется отладчик, ставлю метку первую на one_opecode тем самым делаю для реверсера сущий ад, делаю 15 меток, где каждый раз меняются байты в памяти и делаю это циклично.
да это садизм
 
Последнее редактирование:
бро какой кернел патч, можно просто пропатчить BeingDebugged, автоматизируешь через ScyllaHide
так код уже будет изменен раз 5
SMC код же
PEB->BeingDebugged = 0 так же сработает
ты же вроде исключение словить должен(могу ошибаться) от процессора по типу ACESS VIOLATION, в жтот момент я тоже буду подготовлен тем, что у меня будет VEH обработчик, который будет понимать, раз появилось исключение значит кто то пытался пропатчить что-то.
и уже через обработчик смогу что предпринять.
то есть обработчик возьмет исключение на себя, кое что под модифицирует и вернет результат)
 
Последнее редактирование:
так код уже будет изменен раз 5
SMC код же

ты словишь исключение скорее всего от процессора по типу ACESS VIOLATION, к этому я тоже буду подготовлен тем, что у меня будет VEH обработчик, который будет понимать, раз появилось исключение значит кто то пытался пропатчить что-то.
и уже через обработчик смогу что предпринять
бля что ты принимаешь, откуда там ACESS VIOLATION появится
 
так код уже будет изменен раз 5
SMC код же

ты же вроде исключение словить должен(могу ошибаться) от процессора по типу ACESS VIOLATION, в жтот момент я тоже буду подготовлен тем, что у меня будет VEH обработчик, который будет понимать, раз появилось исключение значит кто то пытался пропатчить что-то.
и уже через обработчик смогу что предпринять.
то есть обработчик возьмет исключение на себя, кое что под модифицирует и вернет результат)
втф с чего бы это, да даже если окей так никто не будет патчить опкоды у тебя просто твои хоть 3000 проверок 1 раз найдут и запачат
 
бля что ты принимаешь, откуда там ACESS VIOLATION появится
да я перепутал с другой темой, сорян
ответ ему тот же самый:
пока он будет пытаться патчмть что-то, код уже изменится, он в любом случае будет меняться циклично
втф с чего бы это, да даже если окей так никто не будет патчить опкоды у тебя просто твои хоть 3000 проверок 1 раз найдут и запачат
кстати, хорошую идею ты подкинул для защиты продукта

сделать динамическое шифрование.
то есть программа уже изначально зашифрована, после запуска в памяти VEH-обработчик расшифровывает ее, запускает и опять шифрует.
то есть надо будет специально вызвать исключение, условно, делением на нуль в регистре, или через пустой указатель
 
может мне кто то объяснить? почему люди по сей день для проверки на отладчик используют вин апишную функцию, которую не любят антивирусы и которая очень легко обходится по peb если можно сделать так
никто не использует, все догадались посмотреть как реализован IsDebuggerPresent, бтв PEB это RW-страница, этому поле просто 0 задают и все, и не надо возиться с чеками на это поле в самой программе

кстати, хорошую идею ты подкинул для защиты продукта

сделать динамическое шифрование.
то есть программа уже изначально зашифрована, после запуска в памяти VEH-обработчик расшифровывает ее, запускает и опять шифрует.
то есть надо будет специально вызвать исключение, условно, делением на нуль в регистре, или через пустой указатель
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
никто не использует, все догадались посмотреть как реализован IsDebuggerPresent, бтв PEB это RW-страница, этому поле просто 0 задают и все, и не надо возиться с чеками на это поле в самой программе
понял
 

в принципе мне объяснили.
разницы нет, кроме того что в таблице импорта не будет красоваться апи функция.
раньше мыслил «делать защиту легко, взламывать уже сложно», но ща переосознал чет)
 
Назад
Сверху Снизу