从目标文件获取源代码

Pav*_*mar 18 c

有没有办法通过在C中使用目标文件来获取源代码?

例如,我有一个简单的源代码

cc simple.c

现在我有一个a.out(目标文件).通过这个a.out我能否得到消息来源?

simple.c的代码

Jer*_*fin 51

没有.将牛变成汉堡包相当容易.把汉堡变成活牛,有点困难.

  • @ 1c1cle:那么在你的心目中,不像屠杀一头牛那样有点"难度"? (7认同)

Dac*_*cav 13

有许多有用的工具可以从可执行文件中检索信息.他们都没有能够回复原始的源代码(正如其他一些用户指出的那样,C不可能),但你可以尝试一些逆向工程工具.我首选的是:

  • Objdump("binutils"包的一部分)
  • hte(debian打包为"ht")

使用第一个,您可以实际获得所有导出的符号及其相对于程序集的相对可执行代码(显然这仅适用于.text各部分).第二个目标是使用英特尔架构,但您将能够分析每个可执行文件并获取有关ELF部分和符号的信息.