程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 錯誤代碼0x805000f,服務器自動重啟原因分析

錯誤代碼0x805000f,服務器自動重啟原因分析

編輯:.NET實例教程
事件類型:      錯誤

事件來源:      EventLog

事件種類:      無

事件 ID: 6008

日期:             2006-11-01

事件:             19:08:49

用戶:             N/A

計算機:   xxxxx

描述:

上一次系統的 19:03:24 在 2006-11-1 上的關閉是意外的。



有關更多信息,請參閱在 http://go.microsoft.com/fwlink/events.ASP 的幫助和支持中心。

數據:

0000: d6 07 0b 00 03 00 01 00   Ö.......

0008: 13 00 03 00 18 00 09 01   ........

0010: d6 07 0b 00 03 00 01 00   Ö.......

0018: 0b 00 03 00 18 00 09 01   ........



事件類型:      警告

事件來源:      USER32

事件種類:      無

事件 ID: 1076

日期:             2006-11-01

事件:             19:27:57

用戶:             xxxx\administrator

計算機:   xxxx

描述:

用戶 xxxxx\Administrator 為這台機器上一次意外的關機提供的原因是: 系統故障: 停止錯誤

原因代碼: 0x805000f

錯誤 ID:

錯誤檢查字符: 0x0000008e (0xc0000005, 0xf535e785, 0xf4c0bb54, 0x00000000)

注釋: 0x0000008e (0xc0000005, 0xf535e785, 0xf4c0bb54, 0x00000000)



有關更多信息,請參閱在 http://go.microsoft.com/fwlink/events.ASP 的幫助和支持中心。

數據:

0000: 0f 00 05 08               ....   





可能的原因:
一、內存錯誤

二、某個定時的服務引起死鎖

三、病毒殘留或者黑客攻擊

四、諾頓的文件檢查功能



檢查及處理過程:


一、由於這是第一次出現類似重啟,先不考慮硬件故障。 但內存錯誤仍有另外一個可能性就是對磁盤上的虛擬內存訪問出錯。先檢查虛擬內存所在磁盤,未發現錯誤。但磁盤中有比較多的文件碎片,考慮到內存文件過於分散有可能會引起偶爾的讀錯誤。所以在凌晨1時左右進行一次全盤的文件碎片整理。



二、根據原因代碼,網絡上有關於定時服務引起文件死鎖的記錄,而查詢登錄日志,離重啟最近的訪問來自於另一台服務器B,加上出現故障時間與整點比較接近,

有可能與某些系統服務有關,所以,將B中的DNS、DHCP等服務關閉,因為這些服務會與故障服務器通訊同步,或者進行某種查詢。更進一步地,將服務器和B服務器上的文件跨網絡定時復制備份等功能刪除。



三、從微軟的網站找到有關病毒也會引發類似故障的說明(相關網址),按說明查詢後排除可能性,然後,再檢查可疑的設備驅動,也未發現任何可疑之處。另外,通過查詢防火牆日志,在19:03前也未發現有異常的攻擊事件。



四、通過網絡上上報的事故報告(相關網址)中提到Symantec的版本有關,在Symantec的技術支持網站看到相類似的報告。考慮到離最近的故障時間登錄者是B服務器,而我們的B服務器上恰恰安裝了Symantec的10.0版,懷疑與故障服務器上的9.0版在升級病毒庫時產生了沖突,所以將B上的Symantec殺毒軟件刪除,然後安裝了一個客戶端,由故障服務器統一管理。


進一步分析


用WinDbg對系統崩潰時的內存Dump文件分析,發現系統重啟時的直接引發文件為RapDrv.sys。



這個文件為BlackICE的系統文件,它包括了監視應用程序的變化的相關模塊,可參見BlackICE的在線說明



檢查RapDrv.sys,文件沒有被改變的跡象,可排除被黑客和病毒修改文件的可能性。



對Dump文件進行調試,找到RapDrv.sys出錯時的堆棧情況,具體內容如下:



EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - "0x%08lx"            "0x%08lx"                    "%s"



FAULTING_IP:

RapDrv+9785

f535e785 894104          mov     dWord ptr [ecx+4],eax



TRAP_FRAME:  f4c0bb54 -- (.trap fffffffff4c0bb54)

ErrCode = 00000002

eax=858b8b4c ebx=00000000 ecx=00000000 edx=00000000 esi=858b5000 edi=84e2660c

eip=f535e785 esp=f4c0bbc8 ebp=f4c0bbdc iopl=0         nv up ei pl zr na pe nc

cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010246

RapDrv+0x9785:

f535e785 894104          mov     dWord ptr [ecx+4],eax ds:0023:00000004=????????

Resetting default scope



DEFAULT_BUCKET_ID:  DRIVER_FAULT



BUGCHECK_STR:  0x8E



PROCESS_NAME:  blackice.exe



CURRENT_IRQL:  0



LAST_CONTROL_TRANSFER:  from 8085b4b3 to 8087b6be



STACK_TEXT:  

f4c0b720 8085b4b3 0000008e c0000005 f535e785 nt!KeBugCheckEx+0x1b

f4c0bae4 808357a4 f4c0bb00 00000000 f4c0bb54 nt!KiDispatchException+0x3a2

f4c0bb4c 80835758 f4c0bbdc f535e785 badb0d00 nt!CommonDispatchException+0x4a

f4c0bb6c f5355b93 850ab630 84e2660c 858b5001 nt!Kei386EoiHelper+0x186

WARNING: Stack unwind information not available. Following frames may be wrong.

f4c0bbdc f535aa20 85897900 84e2660c 00000028 RapDrv+0xb93

f4c0bc08 f535b282 00222034 84e26608 00000058 RapDrv+0x5a20

f4c0bc28 f535b2f3 865b5ba0 00000058 86043a70 RapDrv+0x6282

f4c0bc4c 8092d3b9 84ad79d8 858e9028 84ad7968 RapDrv+0x62f3

f4c0bc60 8092e81b 865b5ba0 84ad7968 858e9028 nt!IopSynchronousServiceTail+0x10b

f4c0bd00 80940844 00000160 00000000 00000000 nt!IopXxxControlFile+0x5db

f4c0bd34 80834d3f 00000160 00000000 00000000 nt!NtDeviceIoControlFile+0x2a

f4c0bd34 7c95ed54 00000160 00000000 00000000 nt!KiFastCallEntry+0xfc

0012d688 00000000 00000000 00000000 00000000 0x7c95ed54





STACK_COMMAND:  kb



FOLLOWUP_IP:

RapDrv+9785

f535e785 894104          mov     dWord ptr [ecx+4],eax



SYMBOL_STACK_INDEX:  0



FOLLOWUP_NAME:  MachineOwner



MODULE_NAME: RapDrv



IMAGE_NAME:  RapDrv.sys



DEBUG_FLR_IMAGE_TIMESTAMP:  3f99bc4f



SYMBOL_NAME:  RapDrv+9785



FAILURE_BUCKET_ID:  0x8E_RapDrv+9785



BUCKET_ID:  0x8E_RapDrv+9785



Followup: MachineOwner



從上面可以看出,在系統崩潰時,RapDrv正試圖作一個IO操作,在IopSynchronousServiceTail調用時出錯。在網上查尋相關資料,發現DapDrv有一個系統漏洞(相關資料),這個漏洞目前並沒有相關補丁和解決方案,好在它發生的條件比較苛刻,如果是攻擊,必須是已經攻入系統,在試圖修改應用程序時才會觸發。也就是說,如果想用這個漏洞進行攻擊,對方必須是已經攻入系統才能利用這個漏洞。



綜合上述,原來推測的四個可能性,只有最後一個Symantec的版本問題最有可能,因為其它的文件傳輸,只要不修改服務器上的可執行程序,是不會引發錯誤的。而Symantec在B服務器上安裝的也是服務器版,它的升級過程中,可能會試圖替換故障服務器上Symantec的上的9.0版程序。這才會觸發RapDrv對文件進行監控。



目前最終處理方案是:


考慮到這種事故發生時造成的影響較小,在基本排除硬件故障後,決定暫時只處理Symantec的版本問題,然後繼續觀察服務器的狀態,如果不再發生類似事件, 則不予理會。如果再一次發生類似情況,就將BlackICE中的文件保護功能關閉,這樣可以一勞永逸地解決這類事故。 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved