问题描述
|
我非常喜欢IDA,但是我正在Solaris上从事此项目。我确实有一台linux机器,并且如果没有什么机器与IDA处于同一联盟,那么我会说服管理层购买它的许可证。
除此以外,我正在寻找其他建议。 IDA中的其他一些功能将很方便,但是目前我需要的主要是不基于源代码的调用流程图生成器。如果它需要从构建步骤中获得额外的输出,那很好,但是我需要查看的某些库没有源文件。
到目前为止,看来我最好的选择是Valgrind的Callgrind,lida和gprof。欢迎任何其他建议。
re:gprof,由Windriver提供给我们的GNU编译器集缺少一些通常由GNU编译器提供的库,这些库提供(除其他功能外)进行概要分析。对于更一般的问题,这是一个很好的解决方案,但是现在,我选择首先尝试其他解决方案。
编辑一些Rational工具(Purify,Quantify等)可能也可以很好地工作。我和IDA在同一条船上,但我认为有人在谷歌搜索可能会发现该建议有用。
edit2 Valgrind尚未移植到solaris / sparc; p
解决方法
看看ERESI项目。它是一个反向工程框架,它具有一个称为ELFsh的工具,该工具具有从机器代码生成CFG的功能。它还没有一个稳定/决赛,但是值得一试。
如果您想尝试一下:
下载并安装(在Ubuntu上为apt-get)
运行
elfsh32
。您将输入一个外壳。
加载您的二进制文件:load /bin/bash
分析一下:analyse
生成图形:graph
您将获得.dot格式的图形和渲染的PNG(此图形太大,无法在此处发布)。
,您可以使用Gprof生成调用图。可以使用Kprof可视化。
,答案很晚,但是仍然有用。在Solaris上,您可以使用collect
。
collect your_program your_args...
它将生成一个目录,例如ѭ6
然后您可以使用er_print -calltree test.1.er
在控制台上可视化调用图
或在-8ѭ的X-Window上