4

我正在尝试使用 OllyDbg 的“Execute Till User Code”功能(这对我来说很重要),但它从来没有用过。

我首先在一个名为MessageBoxA. 当它调用它时,我在调试器中暂停了程序并发出 OllyDbg 执行直到用户代码,但程序仍然暂停并完全冻结。我什至无法单击MessageBox“确定”按钮,甚至无法从 OllyDbg 继续。当我太努力让它继续时,它就崩溃了。

所以我决定在 NASM 中编写一个应用程序(以完全控制)并在那里尝试。弹出,我暂停,执行到用户代码,这次MessageBoxA我可以按下 OK 按钮,但是 OllyDbg 并没有暂停程序。程序就像什么都没发生一样执行。

为什么它不起作用,我能做些什么来解决它?

OllyDbg 1.10(无插件)
Windows 7 Ultimate SP1 64 位

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

4

1 回答 1

5

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

于 2014-01-03T07:08:48.417 回答