查找函数的调用者位置

逆向工程 ollydbg 调试
2021-06-23 22:52:51

我正在调试程序并搜索以查看程序何时调用WinHttpOpenRequest.

我搜索使用的功能 Ctrl+G
在此处输入图片说明

我按了下去Follow expression,它让我了解了WinHttp模块上的函数定义
在此处输入图片说明

我想找到程序的主模块调用这个函数的地方,而不是定义。

我在那里放了一个断点,在程序停止后,我尝试使用 Go to->Previous location\procedure所以看到从程序调用这个函数,但它把我送到了不同的地方。

就我而言,知道如何找到程序调用特定函数的位置WinHttpOpenRequest吗?

我有一个解决方法并使用 IDA 来找到确切的位置,但我确信 OllyDbg 有这种能力,我只是不熟悉它。

1个回答

查看以前的过程并不意味着以前的调用者查看以前的调用者,如果您正在执行二进制文件,则需要查看堆栈

使用ctrl+k
btw winhttp 使用 com,因此它会通过 activex 对象对 vtables 进行复杂的间接访问

不清楚您是否正在执行二进制文件,而只是反汇编并尝试查看引用,因为您提到您在 ida 中有一个解决方法

我想你是指 ida 中的外部参照

如果是这种情况,那么 ollydbg 会在您
分析 winhttp.dll时显示这些引用,ctrl+a 如果您已经分析了 winhttp 并使用 ctrl+g 转到了 api

您将在 cpu 窗口和转储窗口之间看到一个小窗格,说明本地调用,如果双击它,您将看到对当前调用的所有引用

在此处输入图片说明