我需要一个工具来帮助反编译 C++

逆向工程 工具
2021-06-15 06:38:23

我正在尝试对“架构宇航员”制作的一些 C++ 代码进行逆向工程,这些代码具有多层、大量虚函数、大量多态性、元编程、内联内容等。

我知道从机器代码生成 C++ 是一个几乎荒谬的想法,但我正在寻找一种帮助我组织信息的工具。

我会欣赏的功能示例:支持通过 vtables 浏览代码(即:在您手动找到所有相关的 vtables 后,将它们指向程序,然后单击跳转到 vtable 成员“6”的代码跳转到该程序函数,如果由于各种 vtable 的可能性而使这不明确,它会询问您想要什么 vtable)。

轻松编辑嵌套结构(例如:您无需将类定义为 a,struct myClass { myBase baseClass; int someInt;};您实际上可以在“myClass”中看到“myBase”内容,甚至可以对其进行编辑,而无需编辑单独的结构。

支持 STL 名称(极长的名称、带有 <>: 的名称、其中的字符)

能够将某些代码标记为另一个代码的“复制和粘贴”,至少以突出显示的方式,因此您可以更轻松地看到发生了什么(例如,对于大量内联的代码、模板、元编程滥用等) .

能够组织和比较 vtables,假设您有 1 个几乎是整个纯虚函数的基本 vtable,以及 2 个稍后覆盖它的 vtables,那么您可以比较所有 3 个,并知道什么是什么(例如您知道什么是函数)覆盖纯虚函数,因此如果您有调试符号或其他数字,则可以显示原始纯虚函数的名称)。

能够合并结构体(假设你在整个代码中找到一个类的函数,并为每个函数创建一个结构体,最终你发现它是同一个类)

能够为 vtable 上的条目提供“假名”(假设您知道 vtable 中函数的正确名称,编译器也优化掉了该函数,因为它与其他不相关的函数相同,这样您就可以使用原始名称, 而不是看到 A::func1(); A::func2(); B::func47(); A::func4();

0个回答
没有发现任何回复~