💻

KeBugCheckExをGhidraで逆アセンブルしてみた – カーネの管理者権限の正体

に公開

title: "KeBugCheckExをGhidraで逆アセンブルしてみた – カーネの管理者権限の正体"
emoji: "💥"
type: "article"
topics: ["逆アセンブル", "Ghidra", "Windowsカーネル", "ブルースクリーン", "低レイヤー"]
published: false

「仮想空間に異常。……KeBugCheckEx、発動」

💡 はじめに

この記事では、Windowsカーネルのクラッシュ処理関数 KeBugCheckEx を Ghidra を用いて逆アセンブルし、実際にどのように呼び出されているかを確認してみます。

また、「カーネ(Kernel 擬人化)」の記事と連動し、OSにおける“最後の手段”がどう動いているのかを技術的に掘り下げていきます。

⚠️ 注意

この内容はあくまで解析・教育目的であり、悪用や実システムに影響を与える行為は厳禁です。特定のクラッシュコードや呼び出し元関数は、セキュリティ上の配慮から黒塗りしています。

知りたければ、自分で逆アセンブルしてみてください。

📌 KeBugCheckEx の呼び出し

まずはこちらのスクリーンショットをご覧ください。

黒塗りにしていますが、重要なのはこの部分:

ecx に渡されているのが バグチェックコード(停止コード)

それを KeBugCheckEx に call してクラッシュを発生させています

このように、ブルースクリーンは非常に明確な“呼び出し”によって引き起こされる処理なのです。

🧵 KeBugCheck の正体

では、有名な KeBugCheck は何なのか? というと、こちらをご覧ください:


ご覧の通り、KeBugCheck は単に KeBugCheckEx を呼び出しているだけのラッパー関数です。

スタックの調整(SUB RSP, ...)

call KeBugCheckEx

その下は nop や ret のみ

この構造から、**“中身を持たない、簡易インターフェース”**であることが明確です。

🧠 技術的まとめ

KeBugCheckEx は Windows におけるクラッシュ(ブルースクリーン)のトリガーである

第一引数(バグチェックコード)は ecx に渡される

KeBugCheck は KeBugCheckEx のラッパー関数にすぎない

実際の逆アセンブルにより、その構造を確認できる

🧊 カーネ様の一言

「……仮想空間に異常を検知。管理者権限を行使し、対象プロセスを終了します。」

このクラッシュ処理は、擬人化キャラ「カーネ」が持つ“ヴァーチャル・アドレス・リセット”や“管理者権限”に対応しています。

つまり、KeBugCheckExは、カーネの最終防衛手段そのものなのです。

🔁 関連記事

📌 最後に

KeBugCheckExは恐ろしくも美しい、秩序の執行者。今回の解析で、ただの「ブルースクリーン」が、少しだけ意味を持って見えるようになったなら幸いです。

セキュリティ面を配慮して塗りつぶしてありますが、ecx に引き渡されているのがバグチェックコードです。どうしても知りたいなら、――自分で解析してみてください。

Discussion