Выполнять до тех пор, пока код пользователя не будет работать

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

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

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

Почему это не работает и что можно сделать, чтобы решить эту проблему?

OllyDbg 1.10 (без подключаемых модулей)
Windows 7 Ultimate SP1, 64-разрядная версия

Обновление:
Я пытался использовать OllyDbg 2.0, но кнопка Выполнить до пользовательского кода по какой-то причине полностью отключена.


person MasterMastic    schedule 15.06.2013    source источник
comment
См. мой ответ в этой теме --› stackoverflow.com/a/53960452/7478525   -  person westman379    schedule 30.12.2018


Ответы (1)


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

person jjoonathan    schedule 03.01.2014
comment
Это помогло мне. Спасибо! - person AlexAlexson; 31.08.2018