1

Olly のレジスタ ウィンドウを見ると、コード セグメント レジスタとデータ セグメント レジスタの両方がメモリ空間全体にまたがっていることがわかります。重なり合っているということですか?

メモリ マップを見ると、コード領域とデータ領域の両方が取り込まれているようです。

4

1 に答える 1

0

win32 では、ほぼすべてのセグメント レジスタが 0 から 0xffffffff になります。つまり、はい、それらは重複していると言えます。たとえば、コード内のセグメント レジスタを自由に交換できます (ただし、命令のオペコードは通常、プレフィックスのために大きくなります)。

1 つの例外は FS レジスタです。これは、プロセス内のスレッドごとに別々に設定され、スレッド情報ブロックを見つけるために使用できます。

Windows はメモリ保護を使用して、データとコードを安全に分離しようとします。メモリ マップを見ると、「アクセス」列に「E」(実行保護) があるメモリ ブロックがわかります。これはおそらくすべてコードであり、「W」(書き込み保護) はありません。

于 2013-05-25T18:05:36.580 に答える