「スタックベースのバッファーオーバーラン」というエラーが表示されると、アプリのクラッシュやブルースクリーン、システムの不安定化などが発生することがあります。本記事では、このエラーの主な原因を解説するとともに、Windowsで試せる対処法を順番に紹介します。

スタックベースのバッファーオーバーランについて

「スタックベースのバッファーオーバーラン」(Stack-based Buffer Overrun / Overflow)とは、アプリケーションが本来使用できるメモリ領域を超えてデータを書き込んでしまうことで発生するエラーです。

言い換えれば、プログラムには本来使用できるメモリ領域が決められています。しかし、何らかの不具合によって想定以上のデータが書き込まれると、周辺データまで破損し、システムの不安定化を引き起こすことがあります。

この問題が発生すると、アプリのクラッシュやフリーズ、explorer.exeの異常終了、ブルースクリーンなどにつながることがあります。

このエラーの発生タイミングは一定ではなく、特定のソフトやフォルダーを開いた際に表示される場合もあれば、PCの再起動後や、特に何もしていない状態で突然発生するケースもあります。

原因としては、破損したシステムファイル、不具合のあるドライバー、サードパーティ製ソフトとの競合、マルウェア感染などが考えられます。

スタックベースのバッファーオーバーランのエラーメッセージ

スタックベースのバッファーオーバーランを修正する方法

発生原因によって有効な対処法は異なるため、まずはシステムに大きな変更を加えない基本的な方法から順番に試していきましょう。改善しない場合は、Windowsの修復機能や再インストールを検討します。

基本的な対処法

まずは以下の基本的な対処法を試しましょう。

方法1:PCを再起動する

一時的なWindowsの不具合やメモリ状態の異常によって、このエラーが発生することがあります。特に、エラーが突然発生した場合は、PCを再起動するだけで改善するケースも少なくありません。

再起動によってシステム環境や常駐プロセスがリセットされるため、まず最初に試してみることをおすすめします。

方法2:ウイルスやマルウェアをスキャンする

エラーメッセージの内容から、マルウェアや不正なプログラムが影響している可能性も考えられます。再起動しても問題が続く場合は、Windows Defenderなどを使って、パソコン全体をスキャンしてみましょう。

Windows Defender オフラインスキャンを実行することをお勧めします。その方法は以下の通りです。

ステップ1: スタートボタンを右クリックし、コンテキストメニューから「設定」を選択します。

ステップ2: 更新とセキュリティ」→「 Windowsセキュリティ」を選択します。

ステップ3: 右の欄の 「保護の領域」セクションにある「ウイルスと脅威の保護」をクリックします。

ステップ4: Defender セキュリティセンター」ウィンドウが表示されたら、 「スキャンのオプション」をクリックします。

ステップ5: 次に、「Microsoft Defender オフラインスキャン」 を選択し、「今すぐスキャン」ボタンをクリックします。

Microsoft Defender オフラインスキャン

この種のスキャンは、削除が困難な悪意のあるソフトウェアを削除するのに役立ちます。処理を完了するには再起動が必要です。スキャンには約15分かかりますので、終わるまでお待ち下さい。

方法3:SFCとDISMを実行する

システムファイルやWindowsイメージファイルが破損していると、バッファーのオーバーランが検出されることがあります。そのため、システムファイルチェッカー (SFC)と 展開イメージのサービスと管理 (DISM)ユーティリティを使用してシステムファイルの検出と修復を試しましょう。

注: DISMの実行にはインターネットへの接続が必要です。正常に起動できない場合は、セーフモードとネットワークでコンピューターを起動します。

ステップ1:Windows + R で 「ファイル名を指定して実行」 ダイアログを表示します。

ステップ2: cmdと入力し、Ctrl + Shift + Enterを押すとWindowsのコマンドプロンプトが開き、管理者として実行されます。

ステップ3: コマンド sfc /scannow を入力して Enterキーを押すと、システムファイルのスキャンが開始されます。破損したファイルが見つかると、このツールがそれらをキャッシュされたコピーと置換しますが、スキャンプロセスには時間がかかります。これで無事に問題が解決すれば大丈夫です。そうでない場合は次のステップに進みます。

sfc /scannow の実行

ステップ4: 以下の各コマンドラインを入力後、Enterを押して実行します。

  • DISM /online /Cleanup-Image / ScanHealth
  • DISM /Online /Cleanup-Image /RestoreHealth

操作が正常に完了したら、ウィンドウを閉じてコンピューターを再起動します。その後、スタックベースのバッファーのオーバーランの問題が解決されたかどうかを確認します。また、必要に応じてSFCスキャンを再度実行することもできます。

方法4:クリーンブートを実行する

システムファイルにも問題がない場合は、サードパーティ製ソフトや常駐サービスとの競合も確認してみましょう。クリーンブートを実行することで確認できます。

ステップ1: Windows + Sを押し、 msconfig と入力し、検索結果から「システム構成」をクリックして開きます。

ステップ2: 「サービス」 タブを開き、 「Microsoft のサービスをすべて隠す」 にチェックを入れ、 「すべて無効」ボタンをクリックすると、すべてのサードパーティサービスが停止します。

ステップ3: スタートアップ」タブに切り替え、「タスクマネージャーを開く」をクリックします。

ステップ4: 次に、プログラムを選択して 「無効化」をクリックします。リスト内の他のプログラムにもこの操作を繰り返し、これらのサードパーティ製アプリがシステムで起動しないようにして変更を確定します。

ステップ5: システム構成」ウィンドウに戻ったら、 「適用」と「OK」をクリックして変更内容を保存します。

その後、コンピューターを再起動して変更を反映させれば、問題は解決するはずです。ちなみに、これらのプログラムを1つずつ再有効化して問題のあるプログラムを見つけ出し、無効化したままにするか、削除することができます。

Windowsの回復機能を利用する

基本的な方法でも改善しない場合は、Windowsの回復機能を使ってシステム状態を修復していきます。

方法5:システムの復元を行う

スタックベースのバッファオーバーフローが発生する前に復元ポイントを作成していた場合は、PCをエラーが発生する前の状態に戻すことで、問題を解決できる可能性があります。

注: セーフモードに入れない場合は、 「スタートアップ設定」に進む前に、 「詳細オプション」ページで「システムの復元」モジュールを直接選択することができます。

ステップ1: 検索ボックスに「復元」と入力し、結果から 「復元ポイントの作成」を選択します。

ステップ2: システムのプロパティ」 ウィンドウが表示されますので、 「システムの保護」タブにある 「システムの復元」ボタンをクリックします。

「システムの復元」ボタンをクリック

ステップ3: 次のページをスキップします。最新の復元ポイントを選択し、 「次へ」 ボタンをクリックします。

提示: 処理中にアンインストールまたは変更されるプログラムを確認するには、 「影響を受けるプログラムの検出」をクリックします。

最新の復元ポイントを選択

ステップ4: 次のページで復元ポイントの確認が必要になります。すべてのタスクが保存されていることを確認し、 「完了」 ボタンをクリックすると、この操作が実行されます。変更を適用するためにコンピューターを再起動します。

その後、うまくいけばこの問題は解消されるはずです。

方法6:スタートアップ修復を試す

エラーの影響でWindowsが正常に起動できない場合は、「スタートアップ修復」を試してみましょう。

オプション1:高度なスタートアップオプションでスタートアップ修復を行う

ステップ1: 強制的に3回シャットダウンして Windowsの回復環境 に入り、「その他の修復オプションを表示」をクリックします。

ステップ2: トラブルシューティング」→ 「詳細オプション」で「スタートアップ修復」を選択します。

「スタートアップの修復」を選択

ステップ3: 次に、ユーザーアカウントを選択し、対応するパスワードを入力します。画面に表示されるメッセージに従って、 「続行 ボタンをクリックします。

「続行をクリック」

ツールがコンピューターの診断を開始します。コンピューターの正常な読み込みを妨げる問題を検出し、修復します。修復には時間がかかりますので、しばらくお待ち下さい。

その際、 SrtTrail.txtという名前のログファイルが作成され、  C:WindowsSystem32LogFilesSrt. というディレクトリに保存されます。この修復についての詳しい情報を確認することができます。

オプション2:Windowsインストールメディアによるスタートアップ修復の実行

一般的な方法で回復環境にアクセスできない場合は、USBブータブルメディアなどのインストールメディアを使用することができます。

ステップ1: Windows 10メディア作成ツール を使用してUSBインストールメディアを作成します。

ステップ2: 起動用USBメモリを問題のあるデバイスに接続し、BIOSの設定を変更して起動します。

ステップ3: Windowsのセットアップ画面が表示されたら、言語やその他の環境設定を入力し、 次へ ボタンをクリックします。

ステップ4:コンピューターを修復する」をクリックして回復環境に入り、上記コンテンツの手順を参照して 「スタートアップ修復」 を起動します。

コンピュータを修復する

Windowsを再インストールする

基本的な修復やシステムの復元を行っても「スタックベースのバッファオーバーフロー」が解消されない場合は、システム環境に深刻な破損が生じている可能性があります。

Windowsを再インストールすると、システム関連の問題をまとめて解消できるので、重要なデータをバックアップしてからシステムを再インストールしましょう。

ここでは、システムディスクのバックアップを素早く完了させるのに役立つ、オールインワンのディスク管理ソフトウェア「MiniTool Partition Wizard」をご紹介します。

ステップ1:MiniTool Partition Wizardをダウンロードしてインストールします。

システムディスクをバックアップするには、プロ版以上を使用する必要があります。

MiniTool Partition Wizard Pro Demoクリックしてダウンロード100%クリーン&セーフ

提示:
エラーによりパソコンが正常に起動しない場合、MiniToolソフトのブータブルメディアを使用して、パソコンのハードディスクに直接アクセスすることができます。

ステップ2: メインインターフェースでシステムディスクを選択し、左の欄の「ディスクコピー」をクリックします。

MiniTool Partition Wizardのメイン画面で「ディスクコピー」をクリックしている様子

ステップ3: バックアップ保存先のディスクを選択し、「次へ」をクリックします。

警告: 保存先ディスクのデータはすべて破壊されますので、重要なデータが保存されていないことを確認して下さい。

ステップ4: コピーオプションを選択し(デフォルトの設定で構いません)、新しいディスクのパーティションのサイズと位置を確認して「次へ」をクリックします。

MiniTool Partition Wizardのコピーオプションを選択する画面

ステップ5: 保存先ディスクからの起動方法についての情報を読み、「完了」をクリックします。メインインターフェースに戻って「適用」をクリックし、保留中の操作を実行します。

MiniTool Partition Wizardで「適用」をクリックする画面

MiniTool Partition Wizardのおかげで、ドライブ上のすべてのデータを素早くバックアップすることができました。クリックしてツイート

システムディスクのバックアップが完了したので、安心してWindowsを再インストールすることができます。

そのためには、前述の方法で作成したWindowsインストールメディアを引き続き使用することができます。セットアップ画面に入ったら、「コンピューターを修復する」ではなく「今すぐインストール」をクリックし、表示される指示に従ってインストールを完了させます。

まとめ

この記事では、「スタックベースのバッファーオーバーラン」というエラーが発生する原因と対処法を紹介しています。再起動などの基本的な対処法から、システム復元やWindowsの再インストールまで、さまざまな修復方法を紹介しているので、上から順番に試してみてください。

なお、MiniTool Partition Wizardの使用中に何かご不明な点やご意見がございましたら、お気軽に[email protected]までご連絡ください。

「スタックベースのバッファーオーバーラン」エラーに関するFAQ

「バッファー」とは?
バッファー(Buffer)とは、データを入れておくための「一時的な保管場所(入れ物)」のことです。
「スタックオーバーフロー」と「バッファオーバーフロー」の違いは?
スタックオーバーフローは、プログラムの処理が増えすぎることで、スタック領域の容量を超えてしまう状態を指します。
一方、バッファオーバーフローは、確保されたメモリ領域(バッファー)を超えてデータを書き込んでしまう問題です。
どちらもメモリ関連のエラーですが、発生原因や影響する領域が異なります。
バッファオーバーフローはなぜ危険?
バッファオーバーフローは、システムクラッシュやセキュリティの脆弱性など、コンピューターに深刻な問題を引き起こす可能性があるからです。
  • reddit