WinDBG Command : dds. dqs, dps 도구 이야기



WinDBG d*s (Display Word and Symbols) 명령어는 메모리의 값을 보여주고, 그 값을 현재 가지고 있는 심볼과 비교하여 출력해 준다.

가운데에 오는 d, q, p 는 프로세서의 아키텍쳐를 의미한다.


d (Double Word) = 32 Bit

q (Quad Word) = 64 Bit

p = 프로세서의 환경에 따라 32 Bit or 64 Bit




1. dds


2. dds 명령어를 이용해 SSDT 에 존재하는 함수들의 이름 호출하기

SSDT (System Service Descriptor Table) 은 윈도우에서 사용하는 API 들에 대응되는 커널 함수들의 주소가 위치하고 있는 테이블이다. 이 테이블은 4바이트 단위로 커널 함수들의 주소를 담고 있을것이므로 WinDBG 의 dds 명령어를 이용해 함수 이름을 확인해 보자.




SSDT를 가리키는 ServiceDesciptorEntry 구조체는 위와 같다. 첫번째 4바이트가 SSDT의 주소이며, 3번째 4바이트가 SSDT 에 담겨진 수이다. WInDBG 에서 SSDT 주소를 확인 해 보자. KeServiceDescriptorTable 이란 이름으로 찾을 수 있다.



ServiceDescriptorEntry 구조체의 주소를 찾았으므로, dd 를 이용해 멤버를 보면


SSDT 의 주소가 80503bbc, 멤버 수가 0x11C 다.



덧글

댓글 입력 영역


시계

라운드 시계

위키피디아