IDA Pro是非常优秀的反汇编工具,今天简单介绍一下其可视化插件qwingraph.exe的使用方法。
当建立一个二进制工程后,选择View——Graphs——Function Calls,会报如图所示的错误。
按照错误提示,我们打开“cfg”文件夹下面的“ida.cfg”文件,定位到:GRAPH_VISUALIZER,可以发现如下配置:
[plain] view plaincopy
- #ifdef __NT__
- // program to run after generating the graph. The filename is added at the end
- GRAPH_VISUALIZER = "qwingraph.exe -remove -timelimit 10"
- // format of graph files to generate. Possible values: "GDL" and "DOT"
- GRAPH_FORMAT = "GDL"
- // GRAPH_VISUALIZER = "C:\\PROGRA~2\\GRAPHV~1.3\\BIN\\dotty.exe"
- // GRAPH_FORMAT = "DOT"
- #else
- #ifdef __LINUX__
- GRAPH_VISUALIZER = "qwingraph -remove -timelimit 10"
- GRAPH_FORMAT = "GDL"
- //GRAPH_VISUALIZER = "/usr/bin/dotty"
- //GRAPH_FORMAT = "DOT"
- #else # __MAC__
- GRAPH_VISUALIZER = "qwingraph -remove -timelimit 10"
- GRAPH_FORMAT = "GDL"
- #endif
从这个配置文件看起来,实际上很简单,可以选择两个可视化工具,分别是:qwingraph.exe和dotty.exe,而后者是GraphViz的插件。前者在Hex-Rays的主页上提供了源码下载:https://www.hex-rays.com/products/ida/support/download.shtml ,但是经过我尝试,编译非常麻烦,所以考虑直接使用GraphViz的dotty.exe,但是下载安装GraphViz,配置环境变量,并配置上面ida.cfg为:
[plain] view plaincopy
- GRAPH_VISUALIZER = "dotty.exe"
- GRAPH_FORMAT = "DOT"
可以启动dotty,但是仍有错误,如下图所示:
经过反复寻找,终于在这个链接,找到了可以直接使用的qwingraph.exe,将其位置(连同QtGui4.dll和QtCore4.dll)添加到环境变量里面,然后再启动IDA Pro,就可以正常启动qwingraph了,如文中最上面图所示。
防止上面那个链接失效,另外提供一个这个压缩包下载链接.