備忘録

備忘録

Windows(Kernel Mode)

Kernel Patch Protection(KPP) / PatchGuard(PG) を回避する方法

Ⅰ. はじめに タイトルの通り「Kernel Patch Protection(KPP) / PatchGuard(PG) を回避する方法」です。 Ⅱ. やり方 1. Shark をダウンロードする https://github.com/9176324/Shark/releases 2. Shark.sys を読み込む 3. Sea.exe を実行する 実行結果 省略 参…

InfinityHook を利用して Windows の syscall を hook する方法

Ⅰ. はじめに Ⅱ. やり方 1. clone する 2. コンパイルする 3. 実行する 実行結果 FAQ Q. hook できません。 参考 Ⅰ. はじめに Windows の syscall を hook するメジャーな方法は SSDT Hook です。 しかし、Windows にはカーネル領域の改ざんを検知する仕組み…

Windows カーネルドライバでプロセスメモリを読み書きする方法

Ⅰ. はじめに タイトルの通り「Windows カーネルドライバでプロセスメモリの読み書きをする方法」です。 Ⅱ. サンプルプログラム https://github.com/kagasu/KMMM 実行結果 ① プロセスメモリの読み込みに成功し、「value 100」が出力された ② プロセスメモリの…

自己デジタル署名されたドライバをテストモード無効状態で実行する方法

Ⅰ. はじめに 自己デジタル署名されたドライバは通常「テストモードとして起動したWindowsのみ」実行できます。 テストモード無効のままドライバを実行したい場合は、有効なデジタル署名を証明機関から購入し、デジタル署名をする必要があります。この記事で…

Windows Kernel Driver で HelloWorld する方法

Ⅰ. はじめに Ⅱ. やり方 1. Windows Driver Kit(WDK) をインストールする 2. Kernel Mode Driver, Empty(KMDF) の新規プロジェクトを作成する 3. サンプルプログラムを書く 4. 実行する 実行結果 FAQ Q. 以下のメッセージが表示され、ドライバの実行ができな…