環境:
- Windows 8.1 (x64)
- ビジュアルスタジオ
- WinDbg
ドライバーの起動時に、実行時の動作を変更するために bthport.sys の 1 バイトを変更する必要があります。更新する正確な場所を見つけることができます。残念ながら、命令を更新すると、GeneralProtection のエラーが発生し、セットアップされます。 CR0 レジスタの WP フラグは役に立ちませんでした。
カーネル モード ドライバーでページ保護をプログラムで制御するにはどうすればよいですか?
環境:
ドライバーの起動時に、実行時の動作を変更するために bthport.sys の 1 バイトを変更する必要があります。更新する正確な場所を見つけることができます。残念ながら、命令を更新すると、GeneralProtection のエラーが発生し、セットアップされます。 CR0 レジスタの WP フラグは役に立ちませんでした。
カーネル モード ドライバーでページ保護をプログラムで制御するにはどうすればよいですか?
ページ保護を変更せずにコードを変更することができます。このバイトをどこで変更する必要があるかによって異なります。一部のドライバーでは、IRP Major および IRP Minor コールバックが .DATA セクションに保存されることがありました。コードがこのコールバック内にある場合は、それらを独自のコードに置き換えることができます (それらが使用したグローバルに注意してください)。
https://labs.mwrinfosecurity.com/blog/2014/08/15/windows-8-kernel-memory-protections-bypass/で「Windows 8 カーネル メモリ保護バイパス」を確認してください。