工具
Virtuailor IDA Pro C++ 虚表重建工具
在 IDA Pro 中重建 C++ 虚函数表的 IDAPython 工具,适用于 32/64 位 Intel 和 AArch64 代码,通过在 IDA 调试器中运行程序并观察间接调用来完成。静态部分负责找出间接调用,并用条件断点挂钩其调用目标的赋值;断点命中后,动态部分会创建虚表结构体、重命名虚表和虚函数、为调用指令加上结构体偏移,并从每个间接调用添加指向其实际调用的虚函数的交叉引用;对 AArch64 固件,它还会尝试修复未定义的虚表及相关函数。
- 目标
- 二进制 · 固件
- 类别
- 调试与动态分析
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 前提条件:支持 IDA Pro 7.0 至 7.5:master 分支面向 7.5,7.4 以前的 IDA 版本需改用 beforeIDA-7.4 分支。通过 File > Run script 运行 Main.py(README 建议先为 IDB 创建快照),再在 IDA 调试器中运行并操作目标程序;AArch64 目标可通过远程 GDB 服务器调试。仓库没有发布版本,所审阅的 master 分支提交日期为 2020-06-06。
- 局限:只会重建运行时实际命中的虚调用所用的虚表;README 也提到部分断点可能遗漏。
- 许可:依 LICENSE 采用 GPL-3.0 许可。
关于此条目
说明已依据一手来源复核。