如何从 IDA 的 Pro 反汇编文件(.asm 文件)中提取函数调用图?

逆向工程 拆卸 职能 称呼
2021-07-02 13:18:14

我对逆向工程科学完全陌生,对汇编语言知之甚少。顺便说一下,我正在研究kaggle 上可用的反汇编恶意文件的数据集这些文件由 IDA Pro 生成,我无权访问可执行文件或 IDA Pro。

此外,我已经阅读了几篇关于这个主题的论文,并尝试实现其中之一,这个但是,我需要从这些代码生成函数调用图我用谷歌搜索了几个小时,但找不到任何开源工具来从反汇编文件静态生成这个图。

我是一名计算机科学专业的学生,​​因此,正如预期的那样,如果没有人,我愿意实施一个,但是,我不知道如何或从哪里开始。

总结一下,我有以下几个问题:

1- How to generate function call graphs from disassembled files, statically?
2- Are there any algorithms, tools, or libraries to do this task or similar ones?

问候

1个回答

注意:您可能会在 stackoverflow 上得到更好的答案,因为您的问题更多是关于创建软件而不是逆转软件。

首先,您需要将文本文件拆分为多个块。您可以这样做以查找============= S U B R O U T I N E ============IDA 发出注释,或检查sub_XXXX proc [near|far]sub_XXXX endp标记。

然后,要找到您的联系,请查找call每个过程中语句。

最后,您需要布置框并绘制连接。您可以使用Graphviz来执行此操作(您需要以他们称为“点语言”的语法编写定义文件),或查看 Wikipedia Graph 绘图页面,其中包含对所用算法的解释以及指向各种其他软件的链接可能更适合您需求的软件包。