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 다.

덧글