Pharos静态二进制分析框架是卡内基·梅隆大学(Carnegie Mellon University)软件工程研究所的一个项目。该框架旨在促进对二进制程序的自动分析。它使用劳伦斯·利弗莫尔国家实验室开发的玫瑰编译器基础设施,用于拆卸,控制流分析,教学语义等。该软件是根据BSD许可发布的。
当前的发行版是对先前版本的实质性更新,并添加了各种功能,包括改进Ooanalyzer工具,实验路径分析代码,分区器改进,多线程以及许多其他较小的功能。
Pharos框架是一个研究项目,该代码正在进行积极的发展。没有为任何目的提供健身保证。尽管此版本提供了构建说明,单元测试和一些文档,但仍有许多工作要做。我们已经测试了一些选择的构建配置,但是我们尚未积极测试源代码的可移植性。有关更多详细信息,请参见安装说明。
由于发布该代码的主要目的是为我们的研究提供透明度,并刺激与其他二进制静态分析研究人员的对话,因此请随时与Cory Cohen [email protected]联系,您可能对这项工作有问题。我可能无法及时做出回应,但我会尽力而为。
Apianalyzer是用于查找具有指定数据和控制关系的API调用序列的工具。该功能旨在用于检测通用操作系统交互范式,例如打开文件,写入其并关闭它。
OoAnalyzer是用于分析和恢复对象构造的工具。该工具是一篇论文的主题,标题为“使用逻辑编程来从2018年的ACM计算机和通信安全性会议上发表的C ++类别和方法”,该工具通过在程序中的函数之间跟踪对象指标来标识对象成员和方法。该工具的先前实现称为“ OBJDIGGER”,但重命名为反映使用Prolog规则来恢复对象属性的实质性重新设计。该工具的当前版本仅支持对Microsoft Visual C ++编制的32位X86可执行文件的分析。有关如何在非常大的可执行文件上运行OoAnalyzer的更详细的讲师,请参阅这些笔记。
PHAROS分发用于包括一个插件,该插件将Ooanalayzer导出的OO信息导入到Ghidra反向工程工具集中。要现在和将来获得该功能,请安装Kaiju Ghidra插件,其中包括Ooanalayzer插件提供的功能。
Callanalyzer是将静态参数报告给二进制程序中API调用的工具。这在很大程度上是我们当前的呼叫惯例,参数分析和类型检测功能的证明,尽管它也提供了对程序中代码的有用分析。
FN2YARA是生成可执行程序中匹配功能的Yara签名的工具。共享大量功能的程序可能具有共同的行为。
FN2HASH是用于在可执行程序中为功能生成各种哈希和其他描述属性的工具。像FN2YARA一样,它可用于支持二进制相似性分析,或为机器学习算法提供功能。
DumpMasm是一种工具,用于使用与其他工具相同样式的Pharos框架从可执行文件中倾倒拆卸列表。它尚未积极维护,您应该考虑使用Rose的标准recursiveIsAssemble,而是http://rosecompiler.org/rose_html_reference/rosetools.html。