シマンテックのwpsdrvnt で BSoD になったので原因を晒してみる
仕事で使ってるXPがBSoDで死んでたのですが、その原因が Symantecだったので、デバッグして、原因を晒してみるよ・ω・
A problem has been detected and Windows has been shut down to prevent damage to your computer. The problem seems to be caused by the following file: wpsdrvnt.sys DRIVER_IRQL_NOT_LESS_OR_EQUAL If this is the first time you've seen this stop error screen, Check to make sure any new hardware or software is properly installed. If problems continue, disable or remove any newly installed hardware Technical Information: *** STOP: 0x100000d1 (0x00000000, 0x00000002, 0x00000008, 0x00000000) *** wpsdrvnt.sys - Address 0xb99bbc9b base at 0xb99b8000 DateStamp 0x4f73cbd4 |
やり方については、以前の記事
BSoDを解析してみたよ
が参考になると思います。
3: kd> !analyze -v
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1) READ_ADDRESS: 00000000 CURRENT_IRQL: 2 FAULTING_IP: PROCESS_NAME: svchost.exe CUSTOMER_CRASH_COUNT: 1 DEFAULT_BUCKET_ID: DRIVER_FAULT BUGCHECK_STR: 0xD1 LAST_CONTROL_TRANSFER: from b99bbc9b to 00000000 FAILED_INSTRUCTION_ADDRESS: STACK_TEXT: |
見てみると、 wpsdrvnt が NullPointer をコールして死んでるように見える。
WPSDRVNT が何なのか確認してみると
WPSDRVnt.sys
内部名: wpsdrv.sys
Version: 11.0.7200.157
Symantec CMC Firewall WPS
Copyright c 2012 Symantec Corporation.
All rights reserved. Use of this product is subject to license terms.
Symantecのファイアーウォールドライバですね。
L10003C36: push ebx mov ecx,L1000B258 call [HAL.dll!KfAcquireSpinLock] imul edi,00000298h mov ecx,[L1000B2F0] add ecx,edi mov [L1000B25C],al mov edi,[ecx+0000025Ch] mov ebx,[ecx+00000260h] mov dl,al mov ecx,L1000B258 call [HAL.dll!KfReleaseSpinLock] mov edx,[esp+3Ch] mov eax,[esp+38h] mov ecx,[esp+34h] push edx mov edx,[esp+34h] push eax mov eax,[esp+30h] push ecx mov ecx,[esp+30h] push edx mov edx,[esp+30h] push ebp push eax mov eax,[esp+30h] push ecx push edx push esi push eax push ebx call edi <- EDI = 0 mov ebx,eax cmp ebx,C0000016h jnz L10003CF7 |
コールアドレスが 0になっていますね
CASE_10004638_PROC0004: mov eax,[esi+18h] push eax call SUB_L100068F0 mov edi,eax cmp edi,FFFFFFFFh jz CASE_1000460C_PROC0003 cmp dword ptr [esi+08h],00000000h jz CASE_1000460C_PROC0003 mov ecx,L1000B258 call [HAL.dll!KfAcquireSpinLock] mov edx,[L1000B2F0] mov [L1000B25C],al mov ecx,[esi+0Ch] mov eax,edi imul eax,00000298h mov [eax+edx+00000260h],ecx mov ecx,[esi+08h] mov edx,[L1000B2F0] mov [eax+edx+0000025Ch],ecx mov dl,[L1000B25C] mov ecx,L1000B258 call [HAL.dll!KfReleaseSpinLock] mov dword ptr [esi+08h],L10003C00 jmp L100045FB |
少し前の割り込みでコールアドレス代入する箇所があるんですが、その値が 0になってるみたい(赤字)ですね。
でも、さらに少し前のところで、 0になってるかどうかのチェックが行われています。
なので、本来は起こりえない処理なのですが、この間に [esi+8]の値が0に書き換わってしまったか、どこかの処理で、メモリ上書きしてしまった、としか考えられませんね ・ω・ どちらにしてもSEPのドライバのメモリ上の話なので、 Symantecのバグという事は確実でしょう。
システム障害:STOP エラー 0x000000d1 (0x00000000, 0xd0000002, 0x00000008, 0x00000000)発生原因について
ThinkPad X60 待機状態からの復帰でBSOD STOPコード0x
000000D1発生
おそらく、この人も同じ障害
うちはいつ障害が発生したかというと、スクリーンセーバーが解除された瞬間。とリモートログインした瞬間でこの人と同じなので、多分WTS の状態変化が引き金になってると思われます
以前、Symantec にはレポート送ったんだけど 受付が中国の人っぽくて頼りないなかったっす ・ω・
セキュリティソフトって、厨國製ばかりなんですかね?
考えたくは無いのですが、変なバックドア仕込まれていそうで、ちょっと怖いんですが・・・
セキュリティソフトって、厨國製ばかりなんですかね?
考えたくは無いのですが、変なバックドア仕込まれていそうで、ちょっと怖いんですが・・・
中国関わってるのは多いですね。
シマンテックは、日本向けサポートにコストの安い中国エンジニアたくさん使ってるので、
サポート品質については酷いです・ω・
中国関わってるのは多いですね。
シマンテックは、日本向けサポートにコストの安い中国エンジニアたくさん使ってるので、
サポート品質については酷いです・ω・