1

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

4

1 回答 1

2

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

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

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

于 2012-08-28T07:06:18.847 回答