2013-06-15 4 views
2

Я пытаюсь использовать функцию «Execute Till User Code» от OllyDbg (что очень важно для меня), но она никогда не работает.Execute Till User Code не работает

Я сначала попробовал это в программе, которая называлась MessageBoxA. Когда он это назвал, я приостановил программу в отладчике и выпустил OllyDbg для выполнения до пользовательского кода, но программа все еще была приостановлена ​​и полностью заморожена. Я даже не мог щелкнуть по кнопке OK MessageBox или даже продолжить работу с OllyDbg. Когда я слишком старался сделать это, он просто разбился.

Итак, я решил написать приложение в NASM (чтобы иметь полный контроль) и попробовал его там. MessageBoxA выскочил, я приостановил выполнение, выполнив код пользователя, на этот раз я мог нажать кнопку OK, но OllyDbg не приостановил программу, как только я это сделал. Программа просто выполнена, как будто ничего не произошло.

Почему это не работает и что я могу сделать для его решения?

OllyDbg 1.10 (Нет плагинов)
Windows 7 Ultimate SP1 64-разрядное

Update:
Я пытался использовать OllyDbg 2,0, но Execute до кнопки код пользователя по какой-то причине полностью отключен.

ответ

3

Я столкнулся с тем же вопросом, следуя учебному пособию №4 Лены, и я думаю, что понял это. Когда я нажимаю Alt + F9 до «Execute до User Code», я замечаю, что все, кроме одного потока в окне Threads (Alt + T) имеют установленный флаг приостановки. Очевидно, Alt + F9 возобновляет только один поток. К счастью, OllyDbg имеет возможность вручную возобновить другие потоки, щелкнув правой кнопкой мыши на них и выбрав «Возобновить» (или с помощью клавиши +). Для меня этого было достаточно, чтобы разморозить диалог и заставить OllyDbg сделать паузу сразу же после вызова MessageBoxA.