반응형

WinDbg 명령어정리

Command

option

Desc

종료

q

디버깅 종료

qd

디버깅 종료;연결해제

User-mode : Target Application은 종료되지 않는다.

Kernel-mode : Debugee OS Pending되지 않고 계속해서 동작한다.

디버깅 환경정보

vertarget

타겟 컴퓨터 정보 표시

version

디버그 환경 정보 표시

.lastevent

마지막 디버그 이벤트 정보 표시

||

디버깅 세션 정보 표시

symble & sorurce

.symfix

MS 심볼경로 설정

.sympath

심볼경로 확인/설정

!sym noisy

심볼파일 검색 과정을 출력

!sym quiet

심볼파일 검색 과정을 출력하지 않음

.srcpath

.srcpath+ d:\project

소스경로 설정

.srcnoisy

.srcnoisy 1

소스경로 검색 과정을 출력

모듈

lm

로드된 모듈 표시

lm m nt*

패턴과 일치되는 모듈 표시

v

모듈 상세정보 표시

!lmi

!lmi ntdll.dll

모듈 상세정보 표시

.reload

/f test.sys

심볼을 즉시 로드

/i test.sys

TimeStamp가 맞지 않아도 강제로 심볼 로드

/user

[kd] User symbol load

x

x nt!*

x *!*abc*

x /v nt!NtCreateFile

x /t nt!NtCreateFile

x /n nt!ntCreate*

심볼 타입을 표시.

데이터 타입을 표시

이름순으로 정렬

ln

ln [address]

해당 주소에 근접한 심볼의 정보 표시

!dh

!dh [Option] Address

-f  Display file headers

-s  Display Section Headers

-a  Display all header nformation

displays the headers for the specified image

레지스터

r

레지스터 정보 표시

r $proc

현재 프로세스의 PEB주소( user-mode)

현재 프로세스의 EPROCESS주소( kernel-mode)

r $thread

현재 스레드의 TEB주소( user-mode)

현재 스레드의 ETHREAD주소( kernel-mode)

r $tpid

현재 프로세스 ID(PID)

r $tid

현재 스레드 ID(TID)

언어셈블

u


f

b

언어셈블

언어셈블(함수전체)

언어셈블(ip이전의 8개 명령어)

콜스택

k

[n]

p

b

n

v

f

콜스택 정보표시

함수정보 출력

인자표시

프레임번호

FPO정보 표시

스택 사용량 표시

break point

bp

bp 0x123456

bp 설정

bl

bp 리스트 출력

bc

bc * | [frame_no]

bp 삭제

bd,be

bd * | [frame_no]

bp disable/enable

bm

bm notepad!*Win*

패턴과 일치하는 모든심볼에 bp설정

bu

bu aaa!bbb

로드되지 않은 심볼에 대한 bp설정

ba

특정 주소에 access bp

지역변수

dv

dv modulr!test*

/i

/V

심볼유형과 인자유형 표시

변수저장 위치 표시( register or address )

데이터유형

dt

df _EPROCESS 0xaddr

dt _PEB @$peb

주소를 특정 데이터 형으로 변환해서 표시

Current Process PEB정보 디스플레이

du

dpu



Unicode string 표시

da

dpa

Ansi string 표시

dc

db

dy

!address

!address

!address [address]

dds

dds [Options] [Range]


dds esp esp+100

Display Words and Symbols

esp 부터 esp+100까지의 값을 출력

- callstack이 깨진경우, stack확인의 용도로 사용할 수 있다

프로세스 & 스레드 정보

!peb

PEB(Process Environment Block)표시

!teb

TEB(Thread Environment Block) 표시

~*kb

모든 thread의 콜스택 표시

!gle

API의 마지막 에러코드 표시

실행 제어

t

Trace

~.t

다른 스레드를 중지시킨 상태에서 하나의 statementt 실행

g

p

Step Over

gu

gu


~0 gu

현재함수가 복귀할 때 까지 실행

스레드 0을 제외한 모든 스레드를 freeze

wt

-oR

내부에서 호출된 함수와 함수호출 횟수등의 정보 표시

(특정 API 내부에서 호출되는 함수와 결과를 한눈에 확인 할 수 있다.)

.cxr

컨텍스트 변경

!ready

.thread

!thread

.trap

.process

!process

ed

eb

eb .-6 90 90 90 90 90 90

6byteNOP(0x90)으로 변경

!error

!error [error code]

에러코드 정보표시

 

 

 

 

 

 

Set Exceptions

sxe

 

sxe av(0xc0000005)


sxe ld:[moduleName]


sxe ud:[moduleName]

Set Exceptions

Break when access violation

Break when [module] load

Break when [module] unlod

sxd

sxd av

Disable Break when av(first chance)

Create Dump

.dump

/f  full user-mode dump

/m  minidump

/u  Append date,time,PID

Create Dump File

.writemem

.writemem FileName Range

 

: Range – BaseAddr L”DumpSize”

 

.writemem c:\a.dll 0x00030000 L28000

writes a section of memory to a file

WinDBG 설정

.lines -e

라인정보 표시

.enable_unicode 1

Watch, local변수 창에 유니코드 표시

ed Kd_DEFAULT_MASK 8

Vista이상: DbgPrint출력 활성화

 

반응형

+ Recent posts