有C++反编译器吗?

Bry*_*nny 106 c++ decompiling reverse-engineering

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

我已经跑过Boomerang了.

Dav*_*olm 77

您可以使用IDA Pro的六角光芒.除非编译好调试信息,否则通常不会从二进制文件中获得好的C++.准备花费大量的手工劳动来扭转代码.

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

  • 澄清一下,IDA只会给出反汇编.它有一个名为Hex-Rays的附加组件,可以将其余部分反编译为C/C++源代码,尽可能的程度. (26认同)
  • SNOWMAN是一个很好的免费c ++反编译器 (3认同)
  • 就我阅读文档而言,十六进制射线仅输出C(如伪代码)。并不是说它对反编译C ++毫无用处,您只需要稍微了解一下编译器如何转换C ++结构即可。 (2认同)
  • 雪人 +1,但正如其他人所提到的,即使是简单的 [Hello, World](https://derevenets.com/examples.html#_hello_world) 在反编译后也变得几乎不可读。 (2认同)

Dus*_*etz 24

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

  • 该计划的"灵魂"已经消失,只是它以前自我的空壳..." (18认同)

m_p*_*tor 19

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


Fer*_*cio 6

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