WinDbg 사용법
명령어 |
설명 |
사용 예시 |
db |
byte단위로 메모리를 표시 |
>db[메모리주소] >db 0x7ff00000 |
dd |
double word 단위로 메모리를 표시 |
>db[메모리주소] >db 0x7ff00000 |
dt |
type을 표시(구조체 등) type에 해당하는 메모리값 확인 |
>dt [구조체] >dt _PEB >dt [구조체] [메모리주소] >dt _PEB 0x7ff00000 |
* 실습대상(calc.exe)
1. 심볼 서버 연동 설정(Ctrl + S)에 "srv*C:\WebSymbols*http://msdl.microsoft.com/download/symbols" 입력 후 C드라이브에 'WebSymbols' 폴더 생성
2. TEB 주소 구하기
- 명령창에 !teb 입력(TEB의 값은 0x7ffdf000)
3. PEB 주소 구하기
- dt _TEB 0x7ffdf000(TEB+0x30에 위치한 PEB의 주소값은 0x7ffd9000)
4. Ldr 주소값 확인
- dt _PEB 0x7ffd9000
5. PEB_LDR_DATA 구조체 확인
- dt _PEB_LDR_DATA 0x001a1ea0
6. 첫 번째 LDR_DATA_TABLE_ENTRY 확인
- dt LDR_DATA_TABLE_ENTRY 0x1a1ee8-8 (첫 번째 로드된 파일은 자기 자신인 calc.exe)
7. 두 번째 LDR_DATA_TABLE_ENTRY 확인
- dt _LDR_DATA_TABLE_ENTRY 0x1a1f50-8 (두 번째 로드된 모듈은 ntdll.dll)
8. 세 번째 LDR_DATA_TABLE_ENTRY 확인
- dt _LDR_DATA_TABLE_ENTRY 0x102018-8 ( kernel32.dll 모듈의 정보를 확인( DllBase(0x7c7d0000) ) )
* 명령어(!dlls)를 통해서 kernel32.dll 주소를 바로 확인가능함
출처 : 윈도우 시스템 해킹 가이드(hyunmini)