- Thread 관련
- ~ : thread 목록 보기
- ~#s: #번째 thread로 focus(?) 변경
- ~#k: #번째 thread의 스택 상황 보기
- breakpoint 관련
- bu: 심볼에 breakpoint 설정 -- bu module!symbol name
- ex) bu USER32!MessageBoxW
- bl: 설정된 브레이크포인트 목록 보기
- bc: 주어진 번호(bl로 봤을때..)의 브레이크포인트를 제거
- ba: address에 breakpoint 걸기 -- ba Access Size
[Address]
- ex) ba e1 0xXXXXXXXX -> e는 execute이고 e일때 Size는 반드시 1이어야 함.
- bp 0041xxxxxx 브레이크 포인트 설정.
- bu: 심볼에 breakpoint 설정 -- bu module!symbol name
- disassemble 관련
- uf: symbol을 disassemble
- ex) uf win!WndProc+0x19b
- u: address를 disassemble
- ex) u 0xXXXXXX [L(-)#] -- #만큼 이후(이전) 코드 disassemble
- uf: symbol을 disassemble
- memory 관련
- du: unicode 문자열
- da: ASCII 문자열
- Symbols 관련
- lm: 현재 로드된 심볼의 목록
- ld, .reload: 심볼 load/unload관련
- ex) ld ntdll
- x: 심볼 목록 보기
- ex) x USER32!Message* -- Message로 시작되는 User32의 모든 심볼 목록 보기
- .reload : Symbol reload
- kb : web symbol loading 하기
- Debugging 관련
- k: 현재 스레드의 callstack 보기
- r: 현재 스레드의 register상태 보기
Command |
option |
usage |
Desc |
종료 |
|||
q |
|
|
디버깅 종료 |
qd |
|
|
디버깅 종료;연결해제 |
디버깅 환경정보 |
|||
vertarget |
|
|
타겟 컴퓨터 정보 표시 |
version |
|
|
디버그 환경 정보 표시 |
.lastevent |
|
|
마지막 디버그 이벤트 정보 표시 |
|| |
|
|
디버깅 세션 정보 표시 |
sumble & sorurce |
|||
.symfix |
|
|
MS 심볼경로 설정 |
.sympath |
|
|
심볼경로 확인/설정 |
.sym noisy |
|
|
심볼파일 검색 과정을 출력 |
.srcpath |
|
|
소스경로 설정 |
.srcnoisy |
|
.srcnoisy 1 |
소스경로 검색 과정을 출력 |
모듈 |
|||
lm |
|
l |
로드된 모듈만 표시 |
|
|
m [pattern] |
패턴과 일치되는 모듈만 표시 |
|
|
v |
모듈 상세정보 표시 |
!lmi |
!lmi ntdll.dll |
|
모듈 상세정보 표시 |
.reload |
|
/f [m_name] |
심볼을 즉시 로드 |
x |
X ntdll!* X *!*abc* |
/v /t /n |
심볼 타입을 표시. 데이터 타입을 표시 이름순으로 정렬 |
ln |
|
ln [address] |
해당 주소에 근접한 심볼의 정보 표시 |
레지스터 |
|||
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 |
bc * | [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 |
|
주소를 특정 데이터 형으로 변환해서 표시 |
du |
|
|
Unicode string 표시 |
da |
|
|
Ansi string 표시 |
dc |
|
|
|
db |
|
|
|
dy |
|
|
|
|
|
|
|
!address |
!address !address [address] |
|
|
프로세스 & 스레드 정보 |
|||
!peb |
|
|
PEB(Process Environment Block)표시 |
!teb |
|
|
TEB(Thread Environment Block) 표시 |
|
|
|
|
!gle |
|
|
API의 마지막 에러코드 표시 |
실행 제어 |
|||
t |
|
|
Trace |
~.t |
|
|
다른 스레드를 중지시킨 상태에서 하나의 statementt 실행 |
g |
|
|
|
p |
|
|
Step Over |
gu |
gu ~0 gu |
|
현재함수가 복귀할 때 까지 실행 스레드 0을 제외한 모든 스레드를freeze함 |
wt |
|
|
내부에서 호출된 함수와 함수호출 횟수등의 정보 표시 |
.cxr |
|
|
컨텍스트 변경 |
!ready |
|
|
|
.thread |
|
|
|
!thread |
|
|
|
.trap |
|
|
|
.process |
|
|
|
!process |
|
|
|
ed |
|
|
|
eb |
eb .-6 90 90 90 90 90 90 |
|
6byte를NOP(0x90)으로 변경 |
!error |
!error [error code] |
|
에러코드 정보표시 |