将c++ DLL大致反汇编为机器码
disassemble c++ dll roughly to machine code
我知道你不能有一个c++ dll,并期望有它作为源代码,我是对的吗?但同时,当我将c++ dll还原为原始数据时,使用DUMPBIN,然后可以做一些事情来解释它,对吧?例如,我们知道大多数常用操作符的基本映射。
是否有一种工具可以粗略地将原始机器数据解释为看起来更像代码或指令的东西?问题是我没有足够的时间自己从头开始写!所以我在找一个工具或东西来做这件事。
您需要一个反汇编器,这是一个接受二进制对象(如已编译的文件、库或甚至可执行文件)并尝试将其内容重新解释为汇编的工具。
使用这样的工具通常可以检索内部符号的名称(当然,除非二进制图像被剥离,但这不是动态类库的情况)。
对于c++来说,由于名称混淆,这有点困难。
试着看一下Objdump
您可以反汇编DUMPBIN/DISASS的代码部分-但是如果您想要像c++那样的"代码",那么您需要一个反编译器。然而,它们远不是很好,而且经常产生相当难以读的代码——是的,这是你可以输入编译器的东西,但它几乎不是我所说的"人类可读"。
在我看来,最好的反汇编器是IDA(交互式反汇编器)。它有点贵,因为它的目标是专业使用,但有一个免费的(旧的)版本,你可以尝试:
http://www.hex-rays.com/products/ida/support/download_freeware.shtmlHex-Rays反编译器(IDA的附加组件)可以从反汇编中生成C伪代码,这些伪代码在许多情况下可以重新编译。
相关文章:
- Capstone cs_disasm仅反汇编一小部分代码
- 机器码层上的虚函数和条件执行的区别
- 如何使用 objdump 反汇编 OpenJDK(bin/java)
- 在 GDB - C++ 中反汇编重载成员函数
- 尝试从 g++ 理解简单的反汇编代码
- 反汇编中的硬编码地址
- assert()函数未在反汇编中显示
- 反汇编的 exe 文件包含比源代码多得多的代码
- 分析崩溃的反汇编 C++ 代码
- 如何通过反汇编从C++函数获取"lea"指令?
- 如何在gdb中读取内存地址以进行i7处理器代码的反汇编
- arm汇编代码-理解cpp源代码的反汇编
- 研究一个简单的代码反汇编输出和内存映射
- Visual Studio Express 2010 C++反汇编调试
- 我的函数及其参数在反汇编视觉 c++ 中的名称
- 一些反汇编c++代码我很困惑
- 反汇编函数参数(无符号__int8)大海捞针[19] << 8)
- 关于反汇编输出的问题
- 编译c++代码成汇编,然后反汇编
- 将c++ DLL大致反汇编为机器码