# Virtuailor IDA Pro C++ 虚表重建工具

> 在 IDA Pro 中重建 C++ 虚函数表的 IDAPython 工具，适用于 32/64 位 Intel 和 AArch64 代码，通过在 IDA 调试器中运行程序并观察间接调用来完成。静态部分负责找出间接调用，并用条件断点挂钩其调用目标的赋值；断点命中后，动态部分会创建虚表结构体、重命名虚表和虚函数、为调用指令加上结构体偏移，并从每个间接调用添加指向其实际调用的虚函数的交叉引用；对 AArch64 固件，它还会尝试修复未定义的虚表及相关函数。

- 类型：工具
- 目标：二进制 · 固件
- 类别：调试与动态分析
- 关联：基础工具
- 来源复核于：2026-11-05
- 收录于：2026-11-06
- 原始资源：<https://github.com/0xgalz/Virtuailor>
- 一手来源：<https://github.com/0xgalz/Virtuailor/blob/f5e20a021e31d4fdc40bf7fa531c8038ba240095/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/virtuailor/>
- 记录 JSON：<https://awesomerea.org/resources/virtuailor/record.json>
- 英文版：[English](https://awesomerea.org/resources/virtuailor/index.md)

## 使用条件与局限

- **前提条件：**支持 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 许可。

## 一手来源

1. <https://github.com/0xgalz/Virtuailor/blob/f5e20a021e31d4fdc40bf7fa531c8038ba240095/README.md>
2. <https://github.com/0xgalz/Virtuailor/blob/f5e20a021e31d4fdc40bf7fa531c8038ba240095/Main.py>
3. <https://github.com/0xgalz/Virtuailor/blob/f5e20a021e31d4fdc40bf7fa531c8038ba240095/LICENSE>

## 同分区更多条目：原生二进制

- [xAnalyzer x64dbg 代码分析插件](https://awesomerea.org/zh/resources/xanalyzer/index.md) · 工具
- [Voltron 调试器界面扩展工具包](https://awesomerea.org/zh/resources/voltron/index.md) · 工具
- [Remill 机器码到 LLVM bitcode 提升库](https://awesomerea.org/zh/resources/remill/index.md) · 工具
- [iaito radare2 官方图形界面](https://awesomerea.org/zh/resources/iaito/index.md) · 工具
- [HexRaysCodeXplorer C++ 代码重建插件](https://awesomerea.org/zh/resources/hexrays-codexplorer/index.md) · 工具
- [GDB dashboard 调试状态界面](https://awesomerea.org/zh/resources/gdb-dashboard/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
