我想记录执行过程中调用的特定模块内的所有功能。

我尝试了!for_each_function和wt命令。但是,由于目标模块没有任何符号,所以!for_each_function无法识别任何函数。 wt命令似乎只能跟踪一个函数。

我知道IDA调试器可以跟踪函数调用。但是我目前的问题是我只想跟踪特定模块中的功能。我不确定IDA是否可以这样做。我也想知道IDA调试器是否可以在模块加载时中断(类似于windbg中的'sxe ld:modulename'。.

我实际上只需要调用的所有函数的地址。正在考虑是否有办法在模块中的所有RET上设置断点...但是还没有弄清楚该怎么做...

#1 楼

在windbg中打开calc.exe

windbg calc    


bp calc!WinMain ; g    


仅跟踪calc模块从eip到某个特定地址并打印返回值
(请注意,使用任意值作为EndAddress可能会在指令中间插入0xcc来破坏
代码)

0:000> wt -l 2 -oR -m calc =@eip @eip+5fa   


带有返回值的跟踪结果(已修剪) >