Показать сообщение отдельно

  #6  
Старый 09.02.2023, 08:31
colby57
Новичок
Регистрация: 13.02.2022
Сообщений: 12
С нами: 2236305

Репутация: 28
По умолчанию

Цитата:
Сообщение от kin4stat  

Можно например сделать вообще что-нибудь типа
Пример неуместный

Если ты ещё не понял, то есть разница между бряком, который вписываешь ты, и бряком который ставит непосредственно сам дебаггер.

В твоём примере я вижу, что бряк вписываешь именно ты

У дебаггера есть 4 вида бряков: хардвейр в виде 4 штук, int3, ud2 и int 0x3, который как раз ты и поставил.

При выполнении данного кода ты поймаешь краш с исключением EXCEPTION_BREAKPOINT, поскольку отладчик будет обрабатывать только опкоды бряков, которые он сам выставил. Можешь конечно сам модифицировать отладчик, и вместо условного int 0x3, который ты показал можешь поменять на тот асм-код, который ты решил предоставить в своём примере, но произойдет нечто страшное))

Да и где тут вообще восстановление регистра eax? Ты просто контекст ломаешь, а если у меня в eax важный аргумент лежит с поинтером, который ты затёр?

Раз уже показываешь пример, то показывай правильный, ака:

Код:





Код:
push eax
xor eax, eax
jno code

code:
nop

pop eax


Цитата:
Сообщение от kin4stat  

Тот же long jmp игнорируется(ff 25).
Никто не спорит, ведь в теме я упомянул как раз о том, что мой исходник это лишь пример того, как можно обнаруживать бряки или релативный джамп, и ещё упомянул, что ничего не мешает добавлять свои детекты

Цитата:
Сообщение от kin4stat  

Но против нубов спасет, да. Только по хорошему сюда еще проверку региона на PAGE GUARD прикрутить
Опять же, ответ выше

Можно долго спорить о том, чего у меня не хватает в коде, и какие меры предпринимать по обходу этого. Сам я мог бы это обойти как раз 1 хардвейр бряком на любую функцию из IAT, но тем не менее я уже объяснил, что против новичков такое сработает, да и люди в основном абузят MinHook и в x86 и в x64 в наглую, где как раз в начале хукнутой функции будет установлен угадай что? Релативный джамп, т.е. первый байт у тебя будет 0xE9 Поэтому в любом случае даже если не улучшать детекты в моём исходнике, то детектов будет предостаточно, чтобы отсеивать новичков.
 
Ответить с цитированием