Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
  충돌 덤프 분석 하기 - 2 (간단 분석 하기) 
작성일시 : 2007. 11. 27. 16:20 | 분류 : Windows Server/Kernel

이전 포스트 (http://maystyle.tistory.com/127) 를 통해 초기 셋팅이 끝났다면 간단한 분석을 해보자.

간단 분석의 처음과 끝은 오직 한 명령어 !analyze -v 로 끝난다.

자 이전에 로딩한 덤프 파일을 분석해 보겠다.
!analyze -v 를 치면 화면이 쭈욱 내려오면서 분석 내용이 나온다.

필요한 정보는 아래와 같다.
READ_ADDRESS:  00000008
BUGCHECK_STR:  0x24
DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE

위 정보 가지고 구글 및 Live 를 싹다 뒤지도록 하자.
그런데 이걸로만 끝내면 뭔가 아쉽지 않은가? 그래서 간단하게 덤프 분석 코드를 읽는 법을 보도록하자.

해당 스택을 보자면
f78be9c0 f7321c53 85f401a8 853bd000 f78be9f8 nt!IofCallDriver+0x3c
>> 즉 nt!IofCallDriver+0x3c 을 실행하다 죽었다고 되있다.

f78be9e8 8083f9c0 85d92458 853bce70 f78bea74 fltmgr!FltpDispatch+0x6f
f78be9fc 808f6a35 85445be8 f78bea74 85946718 nt!IofCallDriver+0x45
f78bea28 808f6ab4 85d92458 f78bea50 f78bea48 nt!IopSynchronousCall+0xbe
f78bea78 808c755b 85445be8 f78bea88 00000000 nt!IopGetRelatedTargetDevice+0x62
f78bea8c 808c74bf 85445be8 f78beaa8 00000000 nt!IoGetRelatedTargetDevice+0x16
f78bead0 f72aa2ec 85445be8 00000006 853fe008 nt!FsRtlNotifyVolumeEvent+0x20
f78becf0 f72a9b0d 855c00c8 853fe008 855c00c8 Ntfs!NtfsMountVolume+0x17e1
f78bed04 f726a93f 855c00c8 853fe008 85f91020 Ntfs!NtfsCommonFileSystemControl+0x39
f78bed80 8083f71e 855c00c8 00000000 85f91020 Ntfs!NtfsFspDispatch+0x217
f78bedac 8092ccff 855c00c8 00000000 00000000 nt!ExpWorkerThread+0xeb
f78beddc 80841a86 8083f661 00000000 00000000 nt!PspSystemThreadStartup+0x2e
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

그럼 해당 시점에 CPU의 레지스터에는 무슨 내용이 들어가 있었을까?
CONTEXT:  f78be5f0 -- (.cxr 0xfffffffff78be5f0)
eax=0000001b ebx=853bce70 ecx=00000000 edx=853bce70 esi=85f401a8 edi=85d92458
eip=8083f9b7 esp=f78be9bc ebp=f78be9c0 iopl=0         nv up ei ng nz ac po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010292
>> 알다 시피 실행중인 Thread 의 컨텍스트를 통해 알 수 있다.

그럼 실행 코드는 어떻게 될까?
nt!IofCallDriver+0x3c:
8083f9b7 8b7108          mov     esi,dword ptr [ecx+8] ds:0023:00000008=????????
>> 답이 나오는군 esi 레지스터에 어떤 값을 집어 넣는데 보는것 처럼 ???????? 즉 알 수 없는 값을 넣는 바람에 머신이 크래쉬를 일으켰다.

|