在 Ida Pro 中分析 Arm Linux CPP 二进制文件

逆向工程 艾达 C++ 蟒蛇 ida插件 虚表
2021-06-29 18:27:53

我试图用 Ida 打开 CPP 二进制文件。大多数代码分析得很好。

问题是有很多 vtables(Ida 无法将它们识别为 vtables),我需要手动访问它们并按下O(offset),这样 Ida 将分析 vtable 中的所有字段指向它们的函数。

另外,Vtable中的第一个函数是constructor,在那个构造函数中我们可以看到这个vtable继承的vtable。Ida 没有分析“父亲”虚表。

我该如何解决这个问题/或者是否有一个脚本也可以对 CPP Aem 二进制文件执行此操作

1个回答

正如您在评论中提到的,您需要构建类层次结构或查找 vtables。以下是我知道将帮助您实现您想要的一些项目。

  1. classinformer - https://sourceforge.net/projects/classinformer/

  2. 优雅 - https://github.com/RicBent/Classy

  3. Hexpytools - https://github.com/igogo-x86/HexRaysPyTools

  4. 也看看@这个优秀的出版物,但他们的代码库不是开源的 - https://dl.acm.org/doi/pdf/10.1145/3321705.3329833(上次我问他们时,他们告诉我他们计划这样做不久)

他们的论文很有趣,因为它解释了如何恢复这种结构。通常,您需要 vtable 条目、vtable 结构、类构造函数和析构函数分析以及对象流分析来构建所需的层次结构。