2

masm32で簡単なハローワードプログラムを書きました。しかし、IDAを使用して分解しようとすると、はるかに大きな出力が得られます(多くのスペースが必要になるため、そこには書き込みません)。そして、なぜそれが違うのかわかりません。分解されたコードを実行する方法は?

4

1 に答える 1

2

これは正常です。コンパイルは「不可逆」プロセスです。つまり、コードをコンパイルしてから逆コンパイルしても、最初に入力したものとまったく同じものが得られるとは限りません。同じことがアセンブリ言語にも当てはまります。コードをアセンブルしてリンクする場合、それは一方向のプロセスです。

これが、プログラマーがバグを修正したいときにバイナリを逆コンパイルしようとするのではなく、元のソースコードを保存する理由です。

于 2012-05-26T09:39:06.597 に答える