WinDBG 사용법
WinDBG에서 자주 사용했던 명령어들을 정리함.
심볼
SRV*C:\windbgsymbols*http://msdl.microsoft.com/download/symbols
꼭 추가해주자.
레이아웃

나는 이렇게 레이아웃을 설정하고 사용했음. 심볼을 추가하고 Layout을 설정한 후 Workspace를 저장해 두자.
명령어
기본사항
- 숫자는 기본적으로 16진수. 0x 0n 0t 접두어 사용 가능.
.formats #: 포멧 확인? #수식: 수식 연산$,@: 레지스터 접두사. 전자는 심볼로의 인식을 먼저 시도한다.
Breakpoints
bp #주솟값: breakpoint, 계속 진행하려면gg #주솟값: 주소값 나올 때까지 실행bl: breakpoint listbd #번호: breakpoint disablebc #번호: breakpoint clear
Stepping
t: Step-in/tracep: Step-overgu: Step-out (go up) => ret 실행 후 멈춤tt: trace to next return => t 수행하다 ret만나면 멈춤pt: step to next return => p 수행하다 ret 만나면 멈춤
Register
ru EIP L3: EIP주소의 명령어 3개 보기k: Call Stack
Memory View
db: byte (1)dw: words (2)dd: dwords (4)dq: qwords (8)dyb: bitsda: null로 끝나는 ascii 문자열du: null로 끝나는 unicode 문자열d*: 최근에 사용한 d 명령어dg: display sectordt #구조체이름: 구조체 정보
Memory Edit & Search
e[d|w|b] #주솟값 [#새로운_값_배열]s -[d|w|b|a|u] #시작주소 L?#찾을요소갯수 #찾을값: 주소 + 단위 * 찾을요소갯수 까지 검색
Pointer
poi(#주솟값)
Structure
!teb/$teb!peb/$peb!dlls!exchain!vadump: 메모리 페이지 리스트와 정보!lmi #모듈이름: 모듈 정보dt /r#n #구조체이름: 구조체 정보를 n만큼의 level의 tree로 보여줌. ex)dt /r1 _PEB 0x003a4000