OLLYdbg 停止在 ntdll 上的 7000000 个地址上,而不是应用程序的入口点

逆向工程 拆卸 ollydbg 二元分析
2021-06-11 22:04:25

我正在解决 leena 的第四个二进制挑战。但是 ollydbg 无法在大约 400000 或更高的入口点停止。应用程序停止工作并从大约 700000 开始检查下图 应用程序停止工作

如果我们关闭应用程序,它将在 700000 地址处停止。检查下图700000地址

我已经将 olydbg 的调试配置检查到以下设置。ollydbg 的事件配置

现在,如果有人告诉我如何解决这个问题,那就太好了。如果我的配置有误,请告诉我。我正在使用 ollydbg v1.10

1个回答

OllyDbg 已在 停止执行ntdll!RtlUserThreadStart,这似乎几乎是“系统断点”,这是操作系统用来中断的位置,以便调试器可以完成其工作——但并不完全在那里。您所在的地址在里面NTDLL,您在那里没有什么可害怕的。

我相信OllyDbg 中存在一个错误(或我不知道的配置),RtlUserThreadStart尽管您的设置被设置为在程序进入时首先中断,程序会中断RtlUserThreadStart是每个线程的入口点,所以我想知道 Olly 可能会命中这个不完全是系统断点,即使它没有配置为这样做。

无论OllyDbg的V2x64dbg没有这个问题,因为他们预计将在程序的入口点打破,除非你将其配置在其他地方。

例如,这是在 Ollydbg 版本 2 上加载的程序:

在此处输入图片说明

这是它配置为在系统断点上中断时的样子:

在此处输入图片说明

您可以通过使用Alt+ O >> 调试 >> 启动并检查“启动应用程序时,首先暂停”下的“系统断点”来配置它

如您所见,该程序在被视为System Breakpoint的不同地址处中断

x64dbg也在这个地址中断:

在此处输入图片说明

您可以Options >> Preferences >> Events 中配置x64dbg初始断点

无论如何,在您的情况下,OllyDbg v1 中F9将带您到程序的入口点。 Run


我强烈建议使用 x64dbg,它是一个活跃的开源项目,不像 Ollydbg 绝对过时。

以下是一些资源: