NTLL!KiUserExceptionDispatcher(두번째 파라미터)
두번째 파라미터값에 대해서 조사를 해봐서 ContextFlags(1003f)이면 .cxr로 해당 컨텍스트로 이동해 볼수 있다 typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord; // CPU 독립적인 정보 PCONTEXT ContextRecord; // CPU 의존적인 정보 } EXCEPTION_POINTERS , * PEXCEPTION_POINTERS ; 해당 정보는 다음의 2가지 경우에 저장이 될 수 있다. 1) exception filter 수행중 덤프 수집된 경우 2) exception filter 수행중 얻은 exception 정보를 저장한 경우(크래쉬 덤프) A) NTDLL!KiUserExceptionDispatcher ; 두번재 파라미터가 PCONTEXT B) kv 커맨드 ; CONTEXT @ 0f123456 C) msvcrt!__InternalCxxFrameHandler - kpL 커맨드로 쉽게 볼 수 있다(첫번째 파라미터 Exception Record, 세번째 파라미터 Context Record) D) !dumpstack 또한 ContextRecord의 ContextFlags값은 i386 기준으로 1003f임 팁으로 s 커맨드로 범위내의 1003f 값을 갖는 경우를 찾기 위해서 다음과 같이도 할 수 있음 x86> s -d start_addr end_addr 1003f 약간 이상하기는 한데 ntdll!RtlDispatchException ntdll!KiUserExceptionDispatcher(2, 8, ...) 처럼 KiUser~() 두번째 파라미터가 CONTEXT를 가리키고 있지 않다면 위쪽에서(RtlDispatchException)을 검사해 봐라. 해당 위치에서는 i386인데도 1007f값을 가리킨다. 해당 위치로 CONTEXT를 위치시켜보면 정...