【发布时间】:2019-02-17 12:52:40
【问题描述】:
我有文本格式的编译 C 代码。我需要通过反编译机器码来提取源代码。该怎么做?
【问题讨论】:
-
从二进制文件中,您可以生成相应的汇编源代码,并带有一些相关信息,以防出现调试数据(二进制文件未剥离),但不要期望更容易。此外,您可以从多个初始 C 源获得相同的二进制文件,因此即使您能够逆向编译以生成 C 代码,它也不会是初始的,并且可能不容易阅读
-
请详细描述您的期望。并不是说您将从可执行文件中获得可读的源代码,是吗? “以文本格式编译的 C 代码”是什么意思? “文本格式”听起来像是人类可读的东西,但“编译”则相反。请注意,即使是人类也不是非常擅长为完全相同的目的编写可读甚至类似的代码。此外,总是有几种方法可以编写不同的代码,从而产生相同的二进制文件。并且只包含在二进制文件中找到的信息肯定不是通常被认为是可读的。
-
这方面的通俗说法是“把汉堡变回奶牛”。从编译的机器代码中恢复原始源代码实际上是不可能的。反编译器会给你一些功能上等价的东西,但它不会是原始源代码。
标签: c compilation decompiling