assembly - 如何在反汇编的C/C++程序中重建类型和数据结构?

标签 assembly binary types reverse-engineering disassembly

我已经使用 IDA Pro 等反汇编程序反汇编了一个二进制可执行文件。现在,我计划尽可能多地识别类型和数据结构信息。有任何资源引用或想法可以帮助我完成任务吗?

谢谢!~

编辑:

非常感谢以下提示。除了类型和数据结构信息之外,关于类对象识别还有什么想法吗?

最佳答案

已经提到的Reversing: Secrets of Reverse engineering Eldad Eilam 的文章对各种控制流和数据结构在程序集中的外观有一些很好的描述。但是,由于您特别提到了类,我想插入 my article关于 Visual C++ 实现。其中很多内容也适用于其他编译器。

顺便说一句,我建议从小函数/类开始,并在二进制文件中识别它们。如果您使用 Visual C++ 并使用调试信息(命令行上的调试构建或/Zi)编译代码,IDA(至少是最新版本)将检测并提供加载 PDB 符号。这将使您的代码识别更加容易。

关于assembly - 如何在反汇编的C/C++程序中重建类型和数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5609184/

相关文章:

assembly - A64指令末尾的感叹号是什么意思?

c# - 如何按标题对数据进行分组?

c - 在c中的函数中返回一个不同类型的值

java - 如果 Java 是强类型的,那么为什么这段代码可以编译?

assembly - 什么时候需要在汇编中指定操作数的大小?

assembly - 如何正确引用栈上的局部变量

multithreading - 是否可以在 riscv 中的两个锁上构建原子 "release-and-acquire"操作?

flash - 有非官方的 Flash .FLA 规范吗?

c++ - 字符串流和二进制数据

hadoop - Hive 支持无符号数字数据类型