可以将不同的文件扩展名可执行文件反汇编到同一指令集OpCode中吗?

时间:2014-10-23 18:16:53

标签: executable executable-jar decompiler disassembly opcode

这是一个一般无法解决反汇编和反编译的问题,所以请耐心等待。我很想知道可执行文件扩展名(例如,http://pcsupport.about.com/od/tipstricks/a/execfileext.htm中列出的)是否可以被反汇编成汇编语言,以便我可以分析文件中的操作码模式。

我的逻辑是,一旦所有这些不同的文件扩展名都采用操作码形式,它们都处于同一级别,无论语言障碍等等,因此分析它们会更容易。

这有多可行?

编辑:示例。我有一个.exe文件和一个.app文件。如果我对两者进行反汇编,我可以在同一操作系统上的操作码中进行比较吗?如果没有,那么来自同一OS的可执行文件怎么样。例如,对于Windows上的所有可执行文件,如果我反汇编两者,我可以比较每个操作码吗?

EDIT2:混淆器将如何影响我的努力?

1 个答案:

答案 0 :(得分:1)

简而言之,没有。

问题是没有实用通用指令集。实际上,每个计算机体系结构都有自己的指令集(或者有时是几个指令集)。像.exe这样的本机可执行格式被编译到机器的指令集,该指令集将根据ISA目标而不同。

我不熟悉.app格式,但它似乎是某种包含可执行代码的存档。因此,如果您有一个针对相同ISA的exe和app,您可以想象地进行反汇编和比较。

混淆使得事情变得更加困难,因为很难获得可靠的反汇编,更不用说处理自修改代码等事情了。