colinsenner/rtti-plugin-x64dbg

GitHub: colinsenner/rtti-plugin-x64dbg

一个 x64dbg 调试器插件,用于从内存中的 C++ 对象地址快速提取并展示 RTTI(运行时类型信息),辅助逆向分析人员还原类结构和继承关系。

Stars: 37 | Forks: 5

# x64dbg RTTI 插件 ![构建](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/48b5d47767115827.svg) 一个用于快速获取指定内存地址中 RTTI 信息(如果存在)的插件。 RTTI 中包含大量在进行逆向工程时非常有用的信息。本插件旨在让用户能够轻松获取这些信息。 ## 演示 https://github.com/colinsenner/rtti-plugin-x64dbg/assets/13701799/1443cd56-6bc7-4a95-aa60-6eda23b95cac 在演示中,我使用了一个名为 `ClassRTTIPluginTest64` 的可执行文件(也包含在此代码库中),以及 3 个带有 RTTI 信息的已创建类:`ClassA/B/C`。我在每个类的构造函数处设置了断点,然后使用该插件从内存转储中获取 RTTI 信息。 ## 用法 1. 在内存转储中选择一个您怀疑是带有 RTTI 信息的对象的地址。 2. 右键单击该地址并选择 `Rtti-plugin-x64 -> Dump Rtti`。如果该地址包含 RTTI 信息,屏幕底部和 `Log` 窗口中将弹出一个对话框。 ![dump-rtti](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/92725a4e93115828.png) ## 安装 1. 以 Release 模式编译 x86 和 x64 版本的解决方案。 2. 将 /bin 目录中的 `Rtti.dp32` 复制到您的 `x64dbg\release\x32\plugins` 目录中。 3. 将 /bin 目录中的 `Rtti.dp64` 复制到您的 `x64dbg\release\x64\plugins` 目录中。 ## 测试 这里包含一个名为 `ClassRTTIPluginTest` 的项目。您可以编译它们并用于测试功能。编译后它们会被复制到 `/bin` 目录中。 这些测试在类创建之后设有断点,因此请在 x64dbg 中打开测试,并运行直至遇到断点。 1. 在 x64dbg 中打开示例二进制文件 `ClassRTTIPluginTest64d.exe`。 2. 运行程序直到触发断点。该指令将为 `lea rcx, ...; call classrttiplugin...`,此调用即为类的构造函数。 3. 步过该调用并在转储中跟踪 `rax` 以获取该类实例。 4. 右键单击内存转储中的地址并选择 `Rtti-plugin-x64 -> Dump Rtti`。如果该地址包含 RTTI 信息,屏幕底部和 `Log` 窗口中将会出现一个对话框。 ## 报告崩溃 如果您发现崩溃问题,请在 GitHub 上提交 Issue 或发起 Pull Request。 ## 参考文献 `/docs` 目录中包含了有关查找 RTTI 信息的参考资料。感谢以下文献的作者: * [Reversing C++ by Paul Vincent Sabanal and Mark Vincent Yason](https://www.blackhat.com/presentations/bh-dc-07/Sabanal_Yason/Paper/bh-dc-07-Sabanal_Yason-WP.pdf) * [Visual C++ RTTI Inspection](https://blog.quarkslab.com/visual-c-rtti-inspection.html) * [Reversing Microsoft Visual C++ Part II: Classes, Methods and RTTI - by Igorsk](http://www.openrce.org/articles/full_view/23) * [Recovery of Object Oriented Features from C++ Binaries](https://www.ece.umd.edu/~barua/yoo-APSEC-2014.pdf)
标签:C++ RTTI, DAST, JARM, Ruby on Rails, x64dbg插件, 二进制分析, 云安全运维, 云资产清单, 内存分析, 内存转储, 安全意识培训, 客户端加密, 恶意软件分析, 插件开发, 漏洞分析, 路径探测, 软件破解, 运行时类型信息, 逆向工程