1

我知道您不能拥有 C++ dll 并期望将其作为源代码,对吗?但同时,当我使用 DUMPBIN 将 C++ dll 还原为原始数据时,可以做一些事情来解释它,对吧?例如,我们知道大多数流行运算符的基本映射。

有没有一种工具可以将原始机器数据粗略地解释为看起来更像代码或指令的东西?问题是我没有足够的时间自己写它来从头开始!所以我正在寻找一个工具或东西来做这件事。

4

3 回答 3

0

你需要一个反汇编器,它是一个接受二进制对象(如编译文件、库甚至可执行文件)并尝试将其内容重新解释为汇编的工具。

使用这样的工具,您通常可以检索内部符号的名称(当然,除非二进制图像被剥离,但动态喜欢的库并非如此)。

对于 C++ 来说,这也有点困难,因为 name mangling

尝试看一下Objdump

于 2013-01-03T08:20:56.083 回答
0

在我看来,最好的反汇编程序是 IDA(交互式反汇编程序)。它有点贵,因为它是针对专业用途的,但是您可以尝试免费软件(旧)版本:

http://www.hex-rays.com/products/ida/support/download_freeware.shtml

Hex-Rays Decompiler (IDA的一个插件)可以从反汇编中生成 C 伪代码,在许多情况下可以再次重新编译。

于 2013-01-03T13:09:00.727 回答
0

你可以反汇编 DUMPBIN /DISASS 的代码部分——但是如果你想要像 C++ 这样的“代码”,那么你需要一个反编译器。然而,它们远不是很好,而且经常会产生非常不可读的代码——是的,你可以将它输入到编译器中,但这几乎不是我所说的“人类可读”。

于 2013-01-03T09:48:30.877 回答