代码之家  ›  专栏  ›  技术社区  ›  Bryan Denny

有C++反编译程序吗?[关闭]

  •  101
  • Bryan Denny  · 技术社区  · 16 年前

    我有一个程序,我失去了C++源代码。有没有优秀的C++反编译程序?

    我已经跑过了 Boomerang .

    5 回复  |  直到 11 年前
        1
  •  71
  •   David Holm    16 年前

    你可以使用 IDA Pro 通过 Hex-Rays .除非在调试信息中编译,否则通常无法从二进制中获得良好的C++。准备花费 许多 人工倒码。

    如果您没有去掉二进制代码,那么IDAPro可能会为您生成类似于C的代码。但通常情况下很粗糙,至少几年前我用过。

        2
  •  20
  •   Dustin Getz sunsations    16 年前

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

        3
  •  19
  •   m_pGladiator    16 年前

    是的,但是没有一个能够产生足够可读的代码来值得这样做。与从头重写旧应用程序相比,您将花费更多的时间尝试使用内部的汇编程序块读取反编译的源代码。

        4
  •  6
  •   Ferruccio    16 年前

    我没有见过任何生成C++代码的反编译器。我见过一些在生成C代码方面做了合理尝试的实验性代码,但它们往往依赖于匹配特定编译器的代码生成模式(这可能已经改变了,我上次研究这一点已经有一段时间了)。当然,任何象征性的信息都会消失。谷歌搜索“反编译器”。

        5
  •  2
  •   harriyott Erik Funkenbusch    16 年前

    取决于原代码的大小和写得好,它可能值得再次从你最喜欢的语言(它仍然是C++)开始,并从上一版本中犯的任何错误中学习。有没有人说过要写一本扔掉?

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