0

同じ.exeファイルを分解するたびに、同じ命令が同じアドレスにあるのはなぜですか?そして、それは何のアドレスですか(RAM?HDD?仮想?)?

4

2 に答える 2

1

基本的な考え方は、プログラムの移植性を可能にし、異なるプログラムを同じシステム上で衝突することなく実行できるようにするために、基本的に、プログラムの実行時にOSが実際のアドレスに変換する相対アドレスに相当するものです。

アドレスが必要な理由は、ジャンプなどの他の命令のアドレスを参照する命令のためです。

于 2010-06-14T14:53:33.853 に答える
0

理由はありません。これが、そのO/Sの実行可能ファイル/リンク形式が機能することを決定した方法です。アーキテクチャはそれぞれ異なります。たとえば、x86とx64でも、実行可能ファイルはランダム化された仮想アドレスにロードすることも、毎回同じアドレスにロードすることもできます。逆アセンブラは、ファイル内のオフセット、または実行時に決定されたベースアドレス+ファイルオフセット、場合によってはセクションオフセットである仮想アドレスのいずれかを提供します。これはアーキテクチャに大きく依存するため、具体的な答えを出すことはできません...

于 2010-06-14T15:41:29.150 に答える