介绍一个动态分析和跟踪的IDA插件Process Stalker
下载地址: http://www.openrce.org/downloads/details/171
手册地址:http://pedram.redhive.com/process_stalking_manual/
这个插件利用IDA静态分析的结果,生成每一个独立函数的GML图、交叉引用列表和断点列表。然后用
Process_Stalker.exe文件Attach到我们目标的进程,就能生成动态跟踪的结果文件。最后利用Process
Stalker下面的Python工具,对生成的结果文件进行处理,可以生成多种GML文件,比如函数调用分析、
运行中一次调用的函数列表等等。通过这些动态的结果,可以很方便的把以前静态函数全部串联起来,
便于我们查看一个关键函数调用的后条件和关系。
使用的时候几个注意点:
1、因为我用的是ida_pro4.9,不能直接使用binary中已经编译好的process_stalker.plw文件。需要利
用ida sdk4.9重新编译。编译前需要把插件中使用到get_root_filename函数的地方,按照sdk4.9中的
格式进行简单修改,因为sdk4.9中这个输出函数的接口发生了变化。
2、编译process_stalker.exe的时候,main()函数中的case 'm'部分需要用{ }括起来,否则编译不过
。这个是vc6编译器的局限性,不支持for循环中声明的变量作为这部分的内部变量的缘故。
3、用ps_view_recording_funcs.py来生成每个函数中调用情况,比如那部分被调用(红色),那部分
没有调用(灰色)。用ps_view_recording_trace.py来生成每个函数的顺序调用图。因为是第一次用这
个插件,其他的py没有使用。生成出来的GML图像文件我个人喜欢用"Hierarchical"的格式进行查看,
其他的看起来不习惯。