c - 如何从编译后的代码中获取c源代码

标签 c compilation decompiling

我有文本格式的编译 C 代码。我需要通过反编译机器码来提取源代码。如何做到这一点?

最佳答案

“真正的”反编译基本上是不可能的。最重要的是,您不能“反编译”本地名称(在函数和源代码文件/模块中)。对于那些,你会得到类似的东西,对于 int 局部变量:i1i2 ...当然,除非你也有调试信息,但情况并非如此。

反编译成“某种东西”(可能不太可读)是可能的,但它通常依赖于一些启发式方法,识别编译器生成的代码模式,可能被愚弄生成奇怪的(甚至可能是不正确)C 代码。在实践中,这意味着反编译器对于具有某些(默认)编译选项的特定编译器通常可以正常工作,但对于其他编译器则不太好。

话虽如此,反编译器确实存在,您可以试试运气,比如说 Snowman

关于c - 如何从编译后的代码中获取c源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54733440/

相关文章:

用VS2012编译C程序

java - 如何将匿名类重新集成到 ECD 反编译器生成的 Java 代码中?

c - 在 C 中的循环内声明一个函数

c++ - 为项目构建大型库时的最佳实践

c - 线程在 Linux 中可以暂停的最短时间

java - 从命令行编译一个 eclipse GWT 项目,没有 eclipse : compile error

c++ - "int a, b;"和 "int a; int b;"之间的性能差异?

java - 为什么不加密 Java 字节码而不是混淆它呢?

ios - 我如何理解使用 Objective-C 或 Swift 编写的 iOS 应用程序?

c - PMAP/动态加载库的使用 (C/Linux)