![]() |
eXeL@B —› Вопросы новичков —› int3 trap, бряки |
Посл.ответ | Сообщение |
|
Создано: 05 мая 2009 11:08 · Личное сообщение · #1 Возник вопрос, при патчинге любой инструкции в памяти на int3(0xCC), предположим по адресу 0x12345, я жду появления события waitfordebugevent, далее делаю свое дело и по идее востанавливаю работу программы через ContinueDebugEvent. Так вот, посел ContinueDebugEvent процессор выполняет дальше инструкцию по адресу 0x12346 или же он выполняет по адресу 0x12345 опять? Я так понимаю(по коду, что видел в инете. в разных статьях), что если я не уберу int3 - прога будет стоять на этом месте? Или же если там остается CC процессор идет дальше(извиняюсь, нету возможности почитать x86 архитектуру досканально, да и простое объяснение зачастую лучше) ![]() |
|
Создано: 05 мая 2009 13:51 · Личное сообщение · #2 Так вот, посел ContinueDebugEvent процессор выполняет дальше инструкцию по адресу 0x12346 или же он выполняет по адресу 0x12345 опять? Имеет смысл смотреть в отладчике регистр Eip, который ответственнен за текущую выполняемую инструкцию, выполняешь строчку кода через F7/F8 (Step Into/Step Out) и просматриваешь структуру CONTEXT Code:
Подробно о debug API wasm.ru/article.php?article=1001029 ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 05 мая 2009 14:40 · Личное сообщение · #3 |
|
Создано: 05 мая 2009 17:35 · Личное сообщение · #4 |
![]() |
eXeL@B —› Вопросы новичков —› int3 trap, бряки |
Эта тема закрыта. Ответы больше не принимаются. |