WinDbg – notepad.exe DLL 확인 (Windows XP 1/2)
WinDbg를 이용하여 Windows XP의 notepad.exe DLL정보 확인과 PED에 로딩된 DLL정보 확인하기 위해 notepad.exe를 대상으로 실습해보았다.
- WinDbg Download : Download Page
- 실습환경 : Windows XP 32bit (Vmware)
- 실습대상 : notepad.exe
Vmware에서 SeialPort 추가 후 User named pipe에 ” \.\pipe\COM_1 ” 입력
Windows XP에서 실행 – .\boot.ini 열람 후 아래 그림과 같이 한줄을 추가한다.
로컬에서 WinDbg를 실행 후 File – Kernel Debug 를 클릭한다. 그리고 COM 메뉴에서 Port에 ” \.\pipe\COM_1 “를 입력 후 Pipe, Reconnect 체크 후 확인을 클릭한다.
WinDbg가 실행되고 있을 때 Windows XP 재부팅 후 디버거 사용 가능 모드를 선택한다.
WinDbg 와 연결이 된 상태에서 Debug메뉴 – Break를 클릭하면 아래 와 같이 출력되면서 Windows XP가 멈추게 된다. (Break를 걸기 전에 notepad.exe를 실행한다.)
!process 0 0
명령어를 입력 시 현재 프로세스 리스트를 출력한다.!process 0 0 notepad.exe
명령어를 통해 notepad.exe의 Address를 확인 후.process (notepad.exe의 Address)
명령어를 통하여 Context를 지정한다.dt _EPROCESS (ADDRESS)
명령어를 이용하여 여러정보와 PEB 주소를 확인 할 수 있다.dt _EPROCESS Peb (ADDRESS)
를 통해 PEB의 주소를 확인 후dt _PEB (ADDRESS)
명령어 입력 후 Ldr의 주소를 확인한다.dt _PEB_LDR_DATA (ADDRESS)
명령어를 통해 LDR의 정보를 확인한다. InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList 주소를 확인 후 이를 통해 로딩된 DLL 정보 확인이 가능하다. (뒷부분에서 다시 확인)notepad.exe의 ImageBase를 확인 후
!dh (ADDRESS)
명령어를 통해 PE Header 정보를 불러온다. 여기서 출력되는 IMPORT DIRECTORY를 확인 후 해당 주소를 통해 아래 그림처럼 DLL의 정보를 확인 할 수 있다.