回溯哪个函数调用了 x64dbg 中的消息框?

逆向工程 x64dbg
2021-06-18 08:38:34

我每隔几秒钟就会在屏幕上弹出一条错误消息。我想追溯哪个函数正在调用消息框以及为什么。

我找到了引用的字符串,但如何将其追溯到调用该函数的人?

1个回答

您可以通过首先运行程序到入口点跳过所有样板代码,然后转到 x64Dbg 中的符号选项卡,转到 User32.dll,然后过滤MessageBox函数来找到这一点。MessageBox在其中包含的任何函数上放置断点,然后运行程序。现在,当 MessageBox 被调用时,程序将中断,您可以看到执行的位置。

您可以通过转到 CPU 选项卡并在那里右键单击来跟踪调用者,现在转到Search For -> All Modules -> Intermodules References

现在,您将看到一堆函数调用,底部是一个框,您可以在其中输入过滤条件。输入MessageBox,您将看到程序调用的位置MessageBox,然后您可以双击跳转到那里或右键单击以获取更多选项,放置断点等...

我附上了一个使用示例,printf但在您的情况下,您将使用MessageBox. 请注意,这仅在 MessageBox 函数是用于显示消息的函数时才是正确的。如果导入了另一个库,它可能是另一个函数,但过程仍然相似。

在此处输入图片说明