执行直到用户代码不起作用

Mas*_*tic 3 windows debugging reverse-engineering ollydbg

我正在尝试使用OllyDbg的"执行直到用户代码"功能(这对我来说很重要),但它永远不会奏效.

我首先尝试了一个叫做的程序MessageBoxA.当它调用它时,我在调试器中暂停程序并发出OllyDbg执行直到用户代码,但程序仍然暂停并完全冻结.我甚至无法点击MessageBox确定按钮,甚至从OllyDbg继续.当我努力让它继续下去时它就崩溃了.

所以我决定在NASM中编写一个应用程序(完全控制)并在那里尝试.在MessageBoxA弹出,我暂停,直到执行用户代码,我可以按OK按钮这段时间,但一旦我做了OllyDbg的没有暂停程序.该程序刚刚执行,好像什么也没发生.

为什么它不起作用,我该怎么做才能解决它?

OllyDbg 1.10(无插件)
Windows 7旗舰版SP1 64位

更新:
我尝试使用OllyDbg 2.0,但由于某种原因,执行直到用户代码按钮被完全禁用.

jjo*_*han 5

我在遵循Lena的教程#4时遇到了同样的问题,我想我已经弄明白了.当我按Alt + F9"执行直到用户代码"时,我注意到线程窗口(Alt + T)中除了一个线程之外的所有线程都设置了挂起标志.显然,Alt + F9只恢复一个线程.幸运的是,OllyDbg能够通过右键单击并选择"Resume"(或使用+键)来手动恢复其他线程.对我来说,这足以解冻对话框并在调用MessageBoxA后立即让OllyDbg暂停.