两个dis汇编程序可以为同一个可执行文件生成不同的dis汇编吗?

时间:2012-08-28 04:57:18

标签: assembly decompiling disassembly

我有一个可执行文件,我正在使用两个不同的dis汇编程序进行组装。我知道指令可能不同,但两个装配中的操作码必须相同。但我观察到操作码不一样。这有什么具体原因吗?它取决于拆卸装置吗?

1 个答案:

答案 0 :(得分:2)

两个反汇编器产生不同输出的原因可能有很多。

错误的操作码解析,用宏替换操作码,反反汇编技巧(例如'跳转'或'调用'到操作码中间),解析swich-case代码的困难,错误识别处理器架构版本,忽略“无意义” “操作码,错误的对齐,错误的程序开始识别,错误的文件夹解析以及更多......每一个都可能导致不同的输出。

如果你感兴趣,这是另一个有趣的事情,但在另一个方向: http://accessomat.wordpress.com/2010/11/08/x86-assembler-is-not-injective/