我有一个可执行文件,我正在使用两个不同的反汇编程序进行反汇编。我知道指令可能不同,但两个 dis 程序集中的操作码必须相同。但我观察到操作码不一样。有什么具体原因吗?它取决于反汇编程序吗?
问问题
86 次
1 回答
2
两个反汇编程序产生不同输出的原因可能有很多。
错误的操作码解析,用宏替换操作码,反反汇编技巧(例如'跳转'或'调用'到操作码中间),解析swich-case代码的困难,处理器架构版本的错误识别,忽略“无意义”的操作码,错误的对齐方式,错误的程序开始标识,错误的文件持有者解析等等……每一个都可能导致不同的输出。
如果您对此感兴趣,这是另一个有趣的事情,但在另一个方向: http ://accessomat.wordpress.com/2010/11/08/x86-assembler-is-not-injective/
于 2012-08-28T07:06:18.847 回答