1

2 つの異なる逆アセンブラを使用して逆アセンブルしている実行可能ファイルがあります。私は、命令が異なる可能性があることを知っていますが、オペコードは両方のディスアセンブリで同じでなければなりません。しかし、オペコードが同じではないことがわかりました。それには具体的な理由はありますか?逆アセンブラに依存しますか?

4

1 に答える 1

2

2つの逆アセンブラが異なる出力を生成する理由はたくさんあります。

間違ったオペコード解析、オペコードをマクロに置き換える、逆アセンブル防止のトリック(「ジャンプ」や「呼び出し」など)、スイッチケースコードの解析の難しさ、プロセッサアーキテクチャバージョンの誤った認識、「意味のない」オペコードの無視、間違った配置、開始する手順の間違った識別、ファイルホルダーの間違った解析、その他多数...これらのそれぞれが異なる出力をもたらす可能性があります。

ここに興味がある場合は、別の興味深いことですが、別の方向にあります:http: //accessomat.wordpress.com/2010/11/08/x86-assembler-is-not-injective/

于 2012-08-28T07:06:18.847 に答える