2004-03-09から1日間の記事一覧

続々々 No-Execute bit

各エントリの最上位にある NX ビットが実行不許可フラグで、このビットが立っているページから命令を取得しようとするとページフォルトが発生する。 NX ビットを有効にする為には、PAE = 1 (64bit エントリが必要だから) かつ EFER(Extended Feature Enable …

続々 No-Execute bit

ページサイズ 4Kbyte の場合、各テーブルのエントリ構造。 ○ Page-Map Level-4 Table Entry (PML4E) 63 62 52 51 32 +--+-----------------------------+-----------------------------------------+ |NX| Available |Page-Directory-Pointer ベース物理アド…

続 No-Execute bit

long mode でのアドレス変換の図、初めて見たとき思わず笑っちゃったよ。 ページサイズ 4Kbyte の場合。 Virtual Address 63 48 47 39 38 30 29 21 20 12 11 0 +-------------+----------------+----------------+----------------+----------------+-------…

No-Execute bit

AMD64 には実行不許可にできる機構が導入されている様なので調べてみた。

TLB flush

TLB が無効化される範囲とトリガー。 非グローバル全エントリ無効化 CR3 更新、32bit タスクスイッチ。 全エントリ無効化 PE, PG ビットが変更される CR0 更新、PSE, PGE, PAE ビットが変更される CR4 更新、INVD、WBINVD。 実効アドレスで指定したページを…