DBG] Access Violation in IE [frame pointer error] MS] Windows

IE 에서 발생한 아주 간단한 AV dump 입니다.

0:019> .lastevent
Last event: 594.7bc: Access violation - code c0000005 (first/second chance not available)
debugger time: Wed Feb  9 16:39:51.673 2011 (UTC + 9:00)

 

0:019> r

eax=00000000 ebx=02fc2718 ecx=00000101 edx=ffffffff esi=00000000 edi=00000000

eip=02de5300 esp=0301ffb8 ebp=0301ffec iopl=0         nv up ei pl zr na pe nc

cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=00000246

02de5300 ??              ???

 

CallStack 보면, Frame pointer 관련된 오류임을 있습니다.

0:019> kbL

ChildEBP RetAddr  Args to Child             

WARNING: Frame IP not in any known module. Following frames may be wrong.

0301ffb4 77e8758a 02fc2718 00000000 00000000 0x2de5300

0301ffec 00000000 02de5300 02fc2718 00000000 KERNEL32!BaseThreadStart+0x52

 

Frame pointer 확인하기 위해서 stack 확인해 보면

0:019> dds 0301ffb4

0301ffb4  02fc02f0   << 잘못된 child ebp

0301ffb8  77e8758a KERNEL32!BaseThreadStart+

0301ffbc  02fc2718

0301ffc0  00000000

0301ffc4  00000000

0301ffc8  02fc2718

0301ffcc  7ffa7000

0301ffd0  c0000005

0301ffd4  0301ffc0

0301ffd8  0301fc04

0301ffdc  ffffffff

0301ffe0  77e8615b KERNEL32!__except_handler3 [i386\exsup3.asm @ 172]

0301ffe4  77e8b580 KERNEL32!`string'+0x2c

0301ffe8  00000000

0301ffec  00000000

0301fff0  00000000   << return address

0301fff4  02de5300   << 1st parameter

0301fff8  02fc2718

0301fffc  00000000

 

KERNEL32!BaseThreadStart 1st parameter 의심이 가고, Thread 시작 주소와 관련된 문제로 확인됩니다.

 

0:019> uf KERNEL32!BaseThreadStart

KERNEL32!BaseThreadStart+0x46 :

448 77e8757e ff15b012e877    call    dword ptr [KERNEL32!_imp__CsrNewThread (77e812b0)]

 

사실 Disassembly 하지 않아도 아는 내용입니다만… Thread 시작될 KERNEL32!BaseThreadStart 호출 됩니다. 전달 받는 것은 함수의 address 값입니다.

0:019> dt kernel32!CreateThread

CreateThread  void* (

                  _SECURITY_ATTRIBUTES*,

                  unsigned long,

                  <function>*,

                  void*,

                  unsigned long,

                  unsigned long*)

 

그럼 함수(Thread 함수) 시작 주소가 잘못 되었으니, 해당 주소에 Mapping Module 확인해 보면

0:019> !address 02de5300

Address 2de5300 could not be mapped in any available regions

 

아무것도 mapping 것이 없습니다. (이미지는 페이징 파일이 아닌 MMF mapping 됩니다.)

이상과 같이 특정 module Load 되지 않았다고 의심할 있습니다.

 

Unloaded module 확인해 보고 싶지만

Executable search path is:

Windows 2000 Version 2195 (Service Pack 2) UP Free x86 compatible

 

아쉽게도 Windows 2000 입니다. (unloaded module 정보는 windows 2003 이상부터 확인이 가능합니다.)

 

Adplus 생성한 log 확인해보면

0 : ************* ftpproex.dll loading *************

1 : ************* ftpproex.dll unloading *************

ModLoad: 02d90000 02e33000   C:\Program Files\WS_FTP Pro\ftpproex.dll

ModLoad: 02e40000 02ec1000   C:\Program Files\WS_FTP Pro\ftppro32.dll

ModLoad: 76b30000 76b6e000   C:\WINNT\system32\comdlg32.dll

ModLoad: 02ed0000 02f9a000   C:\Program Files\WS_FTP Pro\sslsvc.dll

0 : ************* ftpproex.dll loading *************

1 : ************* ftpproex.dll unloading *************

 

ftpproex.dll 때문에 발생한 것이네요.

 

이상 아주 간단한 AV Dump 였습니다. J


덧글

댓글 입력 영역