はじめに このテキストは、Windowsシステムに関するプログラミングを中心に記述している。カーネルランドのデバッグ、SYSENTER、SYSEXITなどを中心に解説している。 SYSENTER 「Windowsシステムプログラミング Part2」にて、「SYSENTERはユーザーランドとカーネルランドを繋ぐ命令であり、これをフックできる」ことを述べた。そして、SYSENTER実行時に以下の処理が走ることを書いた。 // sysenter実行時の処理内容 1. CSレジスタにSYSENTER_CS_MSR(MSR-174H)の値をロード 2. EIPレジスタにSYSENTER_EIP_MSR(MSR-176H)の値をロード 3. SSレジスタにSYSENTER_CS_MSRの値に8を加算した値をロード 4. ESPレジスタにSYSENTER_ESP_MSR(MSR-175H)の値をロード