【问题标题】:Is there a decompiler that will work on Visual Studio 6 C++是否有适用于 Visual Studio 6 C++ 的反编译器
【发布时间】:2010-10-13 21:46:45
【问题描述】:

我有一个项目,我正试图从我公司离开(放手)的人那里解决。他违反了软件工程的每一个基本原则,不使用源代码控制,在进行更多更改之前不备份源代码等等。

我需要对现场的应用程序进行更改,我没有原始源代码,但我有一个可执行文件。我需要的是一个反编译器,它将反编译 Visual Studio 6 C++ 应用程序并为我提供某种类型的源代码。任何人都有任何想法.....

【问题讨论】:

  • 您是否考虑过使用 21 世纪的编译器?
  • 理解反编译程序通常不是一件容易的事。如果源代码已完全丢失,实际上可能更值得重写程序(并使用适当的源代码控制),而不是尝试对现有的可执行文件进行逆向工程。尤其是如果这是您的公司在可预见的未来需要维护的程序,那么应该考虑到这一点。
  • 如果你的公司没有源码,别怪程序员,怪他前任老板还在你公司!
  • 感谢所有提供意见的人。我现在有一个好的方向。

标签: c++ visual-c++ decompiling


【解决方案1】:

还有来自 Hex-Rays 的反编译器:https://www.hex-rays.com/products/decompiler/

它是从汇编程序创建 C 代码这一事实非常好,但它工作得非常好。也很贵

编辑:附加说明它与 IDA Pro 相结合,这是他们非常知名的反汇编程序。这已经可以向你展示很多信息,结合反编译器更容易逆向代码。

【讨论】:

  • +1 IDA Pro + Hexrays,因为它确实利用了 win32 的知识来帮助反编译并提供更好的代码。
  • 昂贵,但如果它做得好,它可能是值得的。我确实想知道为什么 ARM 版本比 x86 版本贵 1 美元(或 1 欧元)?
  • 在德语中会有一个很好的笑话:'Die wollen uns wohl auf den ARM nehmen' 不幸的是它的翻译不太好。我能想象的唯一原因是他们想表明这不包括在内,而且两者的价格不同。 (只是一个疯狂的猜测)
  • 我能看到的只是 X86 类型的编码,比如 push mov。我想反编译exe但不知道源代码语言。在加载时,我选择了可​​移植可执行文件和元 pc。我看到了启动功能,但它是汇编语言类型。有人可以帮我查看 C 或 C++ 等实际代码吗?
【解决方案2】:

我曾使用 RecStudio (rec22) 和 IDAPro 尝试反编译 C++ 项目,它们可能不足以完成我的工作,除非我制定了该程序所基于的演示项目,所以他们提供了足够的信息,我可以再次制作类似的项目。

最后我做的另一件事是编译我认为匹配的代码并检查我在反编译器中得到了相同的结果。

祝你好运。

【讨论】:

    【解决方案3】:

    反编译成什么 - 汇编器?

    没有任何东西可以从 exe 中为您提供有意义的 C。

    【讨论】:

    • 正如 Vinzenz 所指出的 - 至少有一种产品可以做到这一点(公平地说 - 我不希望生成的代码与原始 C++ 源代码一样有意义)。
    • @Doc Brown:通过您在分析变量和函数名称并编写 cmets 后重命名它们的工作,您可以从中收获很多。只需在我链接的页面上观看简短的反编译演示。但当然它不会像原版那样,但基本上只是“在翻译中迷失了”;-) 但它仍然可以产生惊人的效果。
    • 这令人印象深刻(至少对于他们展示的示例而言)反编译器过去比仅仅阅读 asm 更糟糕
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    相关资源
    最近更新 更多