我有一个程序,我丢失了C ++源代码。那里有没有好的C ++反编译器?

我已经遇到过 Boomerang

有帮助吗?

解决方案

您可以通过 IDA Pro 。 hex-rays.com/“rel =”noreferrer“> Hex-Rays 。除非编译好调试信息,否则通常不会从二进制文件中获得好的C ++。准备花费很多的手工劳动来扭转代码。

如果你没有删除二进制文件,那么就有一些希望,因为IDA Pro可以生成类似C的代码供你使用。通常它非常粗糙,至少在我几年前使用它时。

其他提示

信息在编译过程中被丢弃。即使反编译器可以使用类和所有内容(它可能不能)生成逻辑等效代码,自编档部分也会在优化的发布代码中消失。没有变量名,没有例程名,没有类名 - 只是地址。

是的,但是他们中没有一个会设法产生足够可读的代码来值得付出努力。您将花费更多时间尝试使用汇编程序块读取反编译源,而不是从头开始重写旧应用程序。

我还没有看到任何生成C ++代码的反编译器。我已经看到了一些实验性的尝试生成C代码的合理尝试,但它们往往依赖于匹配特定编译器的代码生成模式(可能已经改变,自从我上次研究这个以来已经有一段时间了) )。当然,任何符号信息都将消失。 Google for“反编译器”。

根据原始代码的大小和编写方式,可能值得用您最喜欢的语言(可能仍然是C ++)重新开始,并从上一版本中的任何错误中学习。是不是有人曾说过写一个扔掉?

n.b。显然,如果这是一个巨大的产品,那么它可能不值得花时间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top