【问题标题】:Converting executable to code [closed]将可执行文件转换为代码[关闭]
【发布时间】:2012-02-22 18:55:32
【问题描述】:

我知道这个问题可能很奇怪。但我只想知道是否可以将任何可执行文件(.exe 或 a.out)转换回源代码?有什么工具吗?如果不是,请忽略这个问题。

【问题讨论】:

    标签: c debugging unix operating-system


    【解决方案1】:

    Boomerang 可能会有所帮助。

    【讨论】:

    • +1 谢谢! [编辑:哦,这个项目看起来已经死了......]
    • 它已经死了,但我只是给了,因为至少它是 OP 想要的 一些东西
    【解决方案2】:

    没有“源代码”之类的东西。该程序可以以多种方式组装。 (例如,它可以用 Pascal、COBOL 甚至直接用机器代码编写。)你能做的最好的事情是“反汇编”程序,即将机器代码转换为可读的汇编助记符。如果您对编译器的实现方式有深入的了解,那么您很可能能够识别常见的模式并推断出某种等效的 C 代码。

    有一些工具可以使用基于此类知识的启发式方法并自动执行该过程。我不知道任何开源的,但我认为IDA Disassembler 朝着这个目标迈进了一步。

    【讨论】:

      【解决方案3】:

      Hh,如果你的意思是转换回汇编源代码,是的,有很简单的方法可以做到这一点(在 linux maxhines 上):objdump --disassemble <binaryname>,你当然可以使用一些窗口disassembler

      你的意思是原始C源代码,有两种选择。当您尝试反转使用调试符号(例如gcc -g ...)编译的应用程序时,您应该能够通过调试器获取源代码(在 gdb 中它会是这样的命令:disassemble /m)。

      如果你不使用它们......你应该在谷歌上搜索reverse engineering :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多