我有一个程序丢失了 C + + 的源代码。有什么好的 C + + 反编译器吗?
我已经查过 回旋镖了。
你可以通过 六角射线使用 IDA Pro。除非在调试信息中进行编译,否则通常不会从二进制文件中获得好的 C + + 。准备花一个 很多的手工劳动逆转代码。
如果您没有去掉二进制文件,那么还有一些希望,因为 IDAPro 可以为您生成类似 C 的代码。通常它是非常粗糙的,虽然,至少当我使用它几年前。
是的,但是他们中没有一个能够产生足够可读的代码,值得付出这样的努力。与从头开始重写旧的应用程序相比,您将花费更多的时间尝试读取包含汇编程序块的反编译源代码。
信息在编译过程中被丢弃。即使反编译器可以生成与类等价的逻辑代码(它可能做不到) ,自我文档化的部分在优化的发布代码中已经消失了。没有变量名,没有例程名,没有类名,只有地址。
根据原始代码的大小和编写的好坏,可能值得用您最喜欢的语言(可能仍然是 C + +)重新开始,并从上一版本中的任何错误中学习。有人不是说过要写一个扔掉吗?
显然,如果这是一个巨大的产品,那么它可能不值得花时间。
我还没有见过任何生成 C + + 代码的反编译器。我见过一些试验性的,在生成 C 代码方面做了合理的尝试,但是他们倾向于依赖于匹配特定编译器的代码生成模式(这可能已经改变了,自从我上次研究这个已经有一段时间了)。当然,任何象征性的信息都会消失。用谷歌搜索“反编译器”。