在 Win32 API 上设置断点在 Ollydbg 中不起作用

逆向工程 ollydbg
2021-06-13 11:34:35

我将 Ollydbg 附加到一个进程,并尝试在CreateWindowExW. 我打字

bpx CreateWindowExW

在命令行中。然后我检查了 Breakpoints 窗口,发现它完全是空的。

同样的事情在 IDA pro 中也能顺利运行——我将 IDA pro 附加到我要调试的进程中,然后在“模块”窗口中,我选择user32.dll并右键单击CreateWindowExW并选择“添加断点”。

实际上,我发现在 Ollydbg 中在 Win32 API 上设置断点非常难用。根据我从谷歌得到的所有信息,我只需要运行bpx xxxxx设置这种断点,但实际上很少成功。大多数情况下,没有设置断点。

我错过了什么?

顺便说一句:我调试的进程动态加载了很多 DLL。这是问题吗?

2个回答

将输入焦点放在 CPU 窗口中的反汇编窗格上,按Ctrl+ G,然后键入CreateWindowExW以导航到该函数的第一条指令。然后按F2在该函数的第一条指令上设置断点。

这在 OllyDbg 的帮助文件中都有非常清楚的记录。

ollydbg 命令行插件接受BP for AddressBPX for labels

因此,如果您需要在 Address 中设置断点,请使用 bp CreateWindowExW

如果您使用了 bpx 并且不存在调用,插件将打开一个搜索模块间调用窗口,供您手动搜索感兴趣的 api

如果你有这样的电话

010020ED FF15 A4110001   CALL    NEAR DWORD PTR DS:[<&USER32.CreateWindow>; USER32.CreateWindowExW

插件将使用 BPX 样式为您需要使用的 bp 样式设置中断此调用 bp 10020ED