http://technet.microsoft.com/en-us/library/cc738483(v=WS.10).aspx によれば a buffer overflow or DEP exception だそうな。ってことは例外は全部 ?EX なのか、例外は最大で26個までなのか、はたまた36個までなのか、特別例外とかいう「イベント」があったらまずくないのか、などなどBOFとでも書いておいてくれればいだくはずもない素朴な疑問はおいておいて、バイナリが正しい配布のものであることを確認して、複数のアンチウィルスでも確認、さらに可能であればそれがDEPに対応できていないことを確認した後にわざわざその実行ファイルでのDEPを無効にし、実行完了後に戻すことにします。
今回はWindows用JREインストーラ実行開始直後
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Java(TM) Platform SE binary は動作を停止しました ... 問題の署名: 問題イベント名: BEX アプリケーション名: jre-6u31-windows-i586.exe アプリケーションのバージョン: 6.0.310.5 アプリケーションのタイムスタンプ: 4f2ce2fa 障害モジュールの名前: StackHash_6718 障害モジュールのバージョン: 0.0.0.0 障害モジュールのタイムスタンプ: 00000000 例外オフセット: 046898a0 例外コード: c0000005 例外データ: 00000008 OS バージョン: 6.1.7601.2.1.0.256.48 ロケール ID: 1041 追加情報 1: 6718 追加情報 2: 6718520661a5809bd4bc4af70234b126 追加情報 3: 2b9a 追加情報 4: 2b9a6b667e74ecf8b9265e65579805bf |
JREインストーラのハッシュはどこにも見当たらないのでインストーラ本体のデジタル署名を隅々まで確認。もっともらしそう。「オンラインで解決策を確認してプログラムを終了します」をクリックすると無言のまま終了。何も無いことを確認してくれたんですね。
このインストーラに対してDEPくらい対応してよという声も複数見つかるので、では半べそですがインストーラのDEPを無効にします。 EMET があれば簡単です。’Configure System’ボタンを押し、DEP を ‘Always On’ から ‘Application Opt Out’ に格下げ。’Configure Apps’ボタンを押して jre-6uxx-windows-xxx.exe を追加、DEPのチェックをはずし、OSごとリブート。インストーラを実行してインストール完了後に’Configure Apps’で追加したものを削除して、DEPを’Always On’に戻して完了。