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 | 6byte를 NOP(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출력 활성화 | ||
'자료' 카테고리의 다른 글
[Ubuntu] upgrade시 용량부족으로 인한 문제 해결 (0) | 2017.10.12 |
---|---|
[Library] vcpkg (0) | 2017.07.26 |
[펌] 동적 메모리 관리 (0) | 2016.12.26 |
[Heap] how2heap (shellpish) (0) | 2016.12.25 |
[Linux] rootkit 자료 (펌) (0) | 2016.11.30 |