17

この命令が実行される直前、fs には 0x0 が含まれます。

また、GDB のこのメモリ領域から読み取る方法を知りたいのですが、そのためのコマンドは何でしょうか?

4

1 に答える 1

13

Linux や Windows などの最新の OSのレジスタfsgsレジスタは、スレッド固有の構造やその他の OS 定義の構造を指します。セグメント レジスタの変更は保護された命令であるため、これらを設定できるのは OS だけです。

この質問は、 amd64 fs/gs が linux に登録することを正確に説明するのに役立ちます。

fsレジスタの実際の値はアドレスではありません。これはセレクターであり、GDT へのオフセットであり、そのセグメントを使用できる/できないものを記述します。非表示の fs ベース レジスタとリミット レジスタの値はわかりません。これらは内部 CPU レジスタであり、新しい「セレクタ」を fs に書き込むことによってのみ更新されます (この時点で、ベース/リミット レジスタは GDT から更新されます)。

于 2013-01-21T08:08:50.180 に答える