ActiveTK's Note

【BSOD】Windowsで意図的にブルースクリーンを発生させる方法5選


作成日時 2022/12/31 10:24
最終更新 2022/12/31 20:09


  • 執筆対象者
  • 方法1. 重要なプロセスを終了させる方法
  • 方法2. システム破壊をする方法か
  • 方法3. 開発者用BSODを使う方法
  • 方法4. バグを利用する方法
  • 方法5. 外部アプリを使う方法
  • 最後に

  • 執筆対象者

    ・ダンプファイルの解析をする目的で意図的にブルースクリーンを発生させたい方

    ・Microsoftに恨みがあり、WindowsをBSODにしたい方

    他人のコンピューターでBSODを発生させると、刑事・民事上の責任を問われる可能性があります。必ず仮想環境で実行してください。
    方法1. 重要なプロセスを終了させる方法

    Windowsの続行が困難な程重要なプロセスが強制終了された場合、ブルースクリーンになります。

    具体的には、「wininit.exe」「ntoskrnl.exe」「svchost.exe」などです。
    以下のようなコマンドを実行すると、BSODとなります。

    taskkill /IM:svchost.exe /F

    ただし、通常のWindows環境では「wininit.exe」などをセキュリティ上の理由で強制終了できない場合があります。


    方法2. システムを破壊する方法

    WindowsディレクトリのSystem32を管理者権限で削除して再起動すると、ブルースクリーンになります。(削除には管理者権限が必要)

    rd /s /q %systemroot%/System32/

    ただし、実行には時間がかかる上に復旧するにはOSを再インストールする他ないので、オススメはできかねます。


    方法3. 開発者用BSODを使う方法

    以下のレジストリに「CrashOnCtrlScroll」という名前の32ビットキーを作り、値を「1」とします。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters

    設定後、OSを再起動し、キーボードの右側のCtrlを押しながら「Scroll Lock」を2回押すとブルースクリーンになります。ただし、右Ctrlの無いキーボードを使っている場合には実行できませんので、ご注意ください。


    方法4. バグを利用する方法

    ブラウザから、以下のURLを開くとBSODが発生します。

    \\.\globalroot\device\condrv\kernelconnect
    問題のパスは「\.\globalroot\device\condrv\kernelconnect」というもので、先日NTFSの脆弱性を公表して話題になったJonas Lykkegaard氏が昨年10月、BSoDを引き起こす方法としてさらっとツイートしていた。
    当時は特に注目されなかったが、NTFSの脆弱性公表に伴って発掘されたようだ。
    このパスはコンソールドライバー(condrv.sys)を示すWin32デバイス名前空間パスだが、Lykkegaard氏はカーネルモード/ユーザーモードのプロセス間通信に使うものだと考えているという。
    このパスを使用するには属性の付加が必要だが、属性を付加しないでアクセスした場合に適切なエラーチェックが行われず、BSoDが発生するとのこと。
    https://security.srad.jp/story/21/01/19/1922232/

    私の手元のEdge環境では、「ファイルが見つかりません」となってしまい、再現できませんでしたが、2021年の2月ごろまでのビルドのWindowsであれば再現できます。


    方法5. 外部アプリを使う方法

    「NotMyFault」と呼ばれる、意図的にブルースクリーンを発生させるアプリを利用すれば簡単にBSODを出せます。

    NotMyFault - Windows Sysinternals | Microsoft Docs

    こちらはエラーの種類や、ブルースクリーンの色を変更できる(もはやブルースクリーンではないですが笑)ので便利です。


    最後に

    BSODを発生させると、メモリーの内容が自動的に「%systemroot%\MEMORY.DMP」に保存されます。
    あとは、このファイルを外部のツールなどで解析してください。