티스토리 뷰

리버싱/정리

WinDbg 사용법

1q 2016. 10. 30. 23:28
책을 보며 Universal 쉘코드를 만드는 과정에서 kernel32.dll의 주소값을 구해보는 실습을 공부 중 정리

각 버전에 맞는 WinDbg 다운로드

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)


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함