반응형

오랜만에 글을 쓰네요.

이번에 경험한 부분에 대하여 관련 내용을 공유하려고 합니다.

 

발생한 상황 .

 - Dump 파일이 생성되지 않는 프로그램

 

[Windbg 따라하기 - 0x003 crash dump file] 생성하기 에서 보셨던 상황과는 다소 차이가 있습니다.

process list에서 볼 수 있는 환경에서는 0x003번과 같이 적용하시면 원하시는 파일을 dump 할 수 있지만

실행 하자마자 죽어버리는 상황이라면 좀 틀려 집니다.

 

필요한 준비물

  - adplus, windbg

  (※ 해당 파일은 VisualStdio를 설치 하시면 설치 됩니다. 만약 설치 안되었다면 [여기] 에서 다운 받으시기 바랍니다.)

 

그럼 준비되었으니 본격적으로 사용하도록 하겠습니다.

먼저, adplus의 역할이 무엇인지 알아야겠죠? 상세 설명은 [이곳]으로 가시기 바랍니다.

간단하게 설명하면 debugging 을 통하여 해당 프로그램에 접근 및 dump 파일을 생성할 수 있게 도와주는 프로그램 입니다.

 

따라서, 해당 프로그램의 attach 및 debugging 모드를 막아놓았다면 adplus를 사용할 수 없게 됩니다. 이점 유의 하시길 바랍니다. (만약 사용하고 싶다면 anti-debug 쪽을 제거 하신 후에 사용하시면 될 것으로 생각되네요..ㅎㅎ)

 

그럼 adplus의 옵션 중 모니터링을 하고 있다가 crash가 발생하면 debugger를 띄어주는 옵션을 인자로 넣어주고

프로그램을 실행 한다. 해당 명령어는 아래와 같다.

 

 

 

   - crash : crash 발생하면 attach 하는 옵션 (hang 옵션도 존재)

   - pmn : 프로세스가 생성될 때 까지 대기 상태로 있다가 생성되면 attach 한다.

   - dbg : debugger 종류 선택

  

이렇게 실행 하게 되면 크래쉬가 발생할 경우 windbg가 생성되게 된다.

 

test.exe 프로그램을 실행 시킬 경우 windbg가 실행 되게 된다. 그 이후 dump 명령어를 통하여 dump 생성을 한다.

 

 

파일 생성 이후 windbg로 crash 파일을 열어서 확인 하면 해당 내용에 대한 call stack 을 확인 하여 문제를 확인 할 수 있다.

 

 

 

그럼 다음엔 더 좋은 내용으로 찾아 뵙도록 하겠슴~다람쥐~~

 

 

 

반응형
반응형

오랜만에 포스트를 하네요. 
요즘 강제로 크래쉬를 만들어서 분석하는 부분에 대해서 삽질을 하기 있어서
이렇게 포스트를하게 됩니다. 

제일 먼저 crash 발생하게 한 뒤에 dump 파일을 생성하게 하는 방법입니다.
일반적으로는 crash가 발생하였을때 dump 파일을 생성하게 코딩을 하고 있지 않기 때문에
crash가 발생할 경우 Just in debugging 기능을 통하여 debugging을 하는 경우가 대부분 입니다. 

이번에 포스트 하는 부분은 crash가 발생한 프로그램에 대한 dump file을 생성하는 방법입니다.
(sample crash 파일 : http://www.codeproject.com/KB/debug/windbg_part1.aspx#_Toc64133663)

 

[그림 1.] crash 프로그램

 

crash가 발생하는 프로그램을 실행 시킨 뒤 [그림 1.] 과 같은 화면에서 Process List를 확인 합니다.

[그림  2.] 프로세스 리스트 - crash 발생하는 프로그램(Crash_Test.exe)

 

Crash_Test.exe 프로세스를 선택 후 오른 쪽 버튼을 눌러 [그림 3.]과 같이 Dump를 하면 됩니다.

[그림 3.] crash 파일 생성 과정

 

Path 경로를 따라 가서 DMP 파일을 windbg를 이용하여 분석하면 됩니다.
분석은 추후에 포스트를 하도록 하겠습니다.

감사합니다.

반응형
반응형

안녕하세요. crattack 입니다.

이번에는 minidump를 분석하는 방법에 대해서 정리해볼까 합니다.
먼저, minidump를 뜨기 위해선 간단한 설정이 필요합니다.

시스템 정보 -> 고급 -> 시작 및 복구 (설정 선택) 

[ 그림 1. minidump 설정 하기 ] 

기본적으로 minidump는 c:\windows\minidump\ 디렉토리 안에 저장 되므로 windbg에서
기본 경로에서 minidump가 생성된 파일을 열어서 분석하면 됩니다.
(※ 열기전에 symbol path를 지정해주어야 합니다. 그래야지 잘나오죠~^^) 

[ 그림 2. minidump 일반적인 분석 내용 ]

[ 그림 3. minidump 상세 분석 내용 ]

감사합니다.
제가 아직 windbg 사용에 익숙치 않아서 간단한 정보만 올리고 있습니다.
혹시 좋은 Tutorial이 있을 경우 같이 공부하였으면 좋겠네요^^
그럼 좋은 하루 되셨으면 합니다.

반응형
반응형

오랜만에 글을 올리네요.

요즘 windbg를 사용해보려고 공부중입니다.

(Install File : http://www.microsoft.com/whdc/devtools/debugging/default.mspx )

※ symbol 설치 파일도 받으시면 좋습니다.

 

windbg를 처음 열었을때 어떤 파일을 Attach를 하더라도

관련 명령어를 하나도 실행하지 못합니다.

 

하지만, Symbol Path를 지정해주면 관련 명령어(ex. !peb)를 사용할 수 있습니다.

 

[ 그림 1. Symbol Path 지정 전 Notepad.exe Attach 결과 ]


!peb의 명령어를 지정하여도 에러 문자만 나오고 관련 정보는 나오지 않는다.
하지만,
ctrl+S (File -> Symbol File Path) 에 아래와 같은 내용을 추가 해 줄 경우 !peb 명령어가 제대로
동작하는것을 볼 수 있다.

 

[ 그림 2. Symbol Path 지정 (Ctrl+S) ] 

꼭!!! Reload를 체크해 주어야 합니다. 그래야지 적용됩니다.
다음은 !peb 명령을 다시 적용하였을때 나온 결과 값입니다. 


[ 그림 3. !peb 명령어 실행 결과 ]

이상 간단한 symbol path 지정이었습니다.
windbg 사용에 있어 좋은 정보 있으시면 댓글 남겨주세요^^

반응형

+ Recent posts