본문으로 바로가기

Windbg 명령어 정리

category Reversing/Debugger Tip 2015. 4. 2. 13:16

Windbg 명령어

 

Command

Description

 Example

 g

 실행

 - g

 break point 또는 프로그램 끝까지 실행

 - g 401000

원하는 주소까지 실행

 q

 종료 (Windbg 및 Taget 프로그램 모두)

 

 qd

 Windbg만 종료되고 Taget 프로그램은 종료되지 않는다. (detach)

 

 .restart

 재시작   
 u

 Unassemble

 - u

EIP 주소 unassemble

 - u 401000

원하는 주소 unassemble

 - u 401000 L5

원하는 주소부터 L뒤의 숫자만큼 unassemble

 uf  Unassemble Function

 - uf MessageBoxA

함수 영역 unassemble

 - uf 401000

주소가 있는 함수 영역 unassemble

 p

 Step Over 

 - p

한줄 실행

 - pr

한줄 실행하면서 레지스터에 대한 정보 표시 유/무 설정

 - pct

call 이나 return을 만날 때까지 한줄씩 실행

 t

 Step Into 

 - t

한줄 실행

 - tr

한줄 실행하면서 레지스터에 대한 정보 표시 유/무 설정

 - tct

call 이나 return을 만날 때까지 한줄씩 실행

 r

 레지스터 정보 표시

 - r

모든 레지스터 정보 표시

 - r eax

eax 레지스터 정보 표시

 d

 메모리에 존재하는 data 표시

 - d 407030

407030에 존재하는 data/ASCII를 byte 단위로 표시

 db

 Byte 단위로 data 및 ASCII 문자 표시

 - db 407030

407030에 존재하는 data/ASCII를 byte 단위로 표시

 dc

 Dword 단위로 data 및 ASCII 문자 표시

 - dc 407030

407030에 존재하는 data/ASCII를 Dword 단위로 표시

 dd

 Dword 단위로 data 표시

 - dd 407030

407030에 존재하는 data를 Dword 단위로 표시

 dt

 구조체 정보 표시(data를 구조체 형식에 맞춰 표시)

 - dt _PEB

PEB 구조체 정보 표시

 - dt _PEB 7ffdc000

7ffdc000에 있는 data를 PEB 구조체 정보에 맞게 표시

 bp

 Break point 설정

 - bp MessageBoxA

MessageBoxA 함수를 호출하는 지점에 bp 설정

 - bp 401000

401000 주소에 bp설정

 bl

 Break point list

 
 bc

 Break point 삭제

 - bc 0

bp 설정된 번호를 이용하여 bp삭제

 #

 원하는 Assembly 명령어 검색

 - #push 401000

401000부터 첫번째 push 명령어가 존재하는 주소 확인

 s

 메모리 검색

 - s -u 0x00000000 L?0x7fffffff "ruinick"

메모리 주소 0 ~ 0x7fffffff까지의 data 중 unicode 문자열 ruinick 검색

 - s -a 0x00000000 L?0x7fffffff "ruinick"

메모리 주소 0 ~ 0x7fffffff까지의 data 중 ASCII 문자열 ruinick 검색

 kv

 Call Stack 정보 표시