1

マシン上の複数のプロセスでいくつかを実行することcat /proc/*some PID*/mapsで、メモリアドレスに関してすべての開始点が同じであることに気付きました0x8048000. これは、すべてのプロセスが「スタック、ヒープなどを含む独自のメモリ空間」を持っていることを意味しますか? 実行時に?

もしそうなら、たとえば攻撃者は、あるプロセスのメモリアドレスを別のプロセスとどのように区別できるでしょうか?

マシンに 2GB の RAM があり、いくつかのプロセスが同時に実行されている場合、対象となるメモリ アドレスをどのように知ることができるでしょうか? それとも、私はこれを完全に誤解しており、攻撃はプロセス自体を見て、そこから前進することから始まりますか?

初心者の質問を許してください。私はアセンブリを始めたばかりで、5 つのチュートリアルを同時に読んでいて、すべてを理解するのに少し苦労しています。

この質問は、IT セキュリティではなく、ここに記載されていることに注意してください。アセンブリ側について言及しているためです。

4

1 に答える 1

5

各プロセスには独自の「仮想メモリ」があり、そこに独自のスタック、ヒープ、命令などを格納します。各プロセスは、他のプロセスとは無関係に 32/64 ビット アドレス空間全体を使用できます。カーネルは、各プロセスの仮想メモリとマシンの物理 RAM の間のマッピングを管理します。ウィキペディアでは、これについて詳しく説明しています。

ほとんどの攻撃は、特定の 1 つのプロセスのメモリを標的としています。攻撃者は、標的とするプロセスのアドレス空間からアドレスを使用します。ご覧のとおり、多くの実行可能ファイルは標準の仮想アドレスで読み込まれるため、攻撃者はプロセスのメモリ レイアウトを簡単に予測できます。

于 2013-02-07T21:47:35.730 に答える