我有一个程序,其中C++源代码丢失了。是否有好的C++反编译器可用?
我已经发现了Boomerang。
在编译过程中,信息会被丢弃。即使反编译器可以生成逻辑等效的代码和类(它可能做不到),但在优化后的发布代码中,自我记录部分已经消失了。没有变量名,没有例程名,没有类名 - 只有地址。
是的,但是它们都无法生成足够可读的代码来值得花费精力。你将会花更多时间尝试阅读反编译源码中的汇编块,而不是重写你的旧应用程序。
我没有看到任何生成C++代码的反编译器。我见过一些试验性的反编译器,它们会尝试生成C代码,但它们往往依赖于匹配特定编译器的代码生成模式(可能已经改变,因为我上次研究这个已经有一段时间了)。当然,任何符号信息都将消失。请搜索“反编译器”。
根据原始代码的大小和质量,如果值得的话,重新从你喜欢的语言开始(可能仍然是C++),并从上一个版本中学习任何错误。有人曾经说过写一份要扔掉的代码吗?
注:显然,如果这是一个庞大的产品,那么可能不值得花费时间。
objdump
- Stypox