-
SSDTwindows system 2014. 11. 8. 21:30
SSDT 는 System Service Dispatch Table 의 약자이다.
이 테이블은 시스템에서 이용 가능한 모든 시스템 서비스들의 주소를 가지고 있다.
Windows API 호출 시, User mode
그림 출처 : 초보자를 위한 Kernel based windows rootkit -1부- By Beist Security Study Group(http://beist.org)
int 0x2E 를 통해 IDT를 거쳐서 system call table로 들어가고,
SYSENTER명령어를 사용하면 SSDT table로 바로접근한다.
Windows API 호출 시, kernel mode
KiSystemService()함수는 SSDT주소(KiServiceTable)+[EAXindex*4]연산을 통해 native API 함수 주소를 얻어올 수 있다.
KeServiceDescriptorTable 구조:
그림 출처 : http://sulife.tistory.com/category/프로그래밍
serviceTable은 SSDT(KiServiceTable)의 base address이다.
SSPT(system service parameter table) 혹은 KiArgumentTable은 SSDT에 있는 각 함수들의 인자 크기를 갖고 있다.
전체적인 Flow
그림 출처 : Inside Windows RootKits
'windows system' 카테고리의 다른 글
api monitoring, API hooking tool (0) 2016.06.14 Windows API (0) 2015.05.08 윈도우에서 파이썬 개발 환경 세팅 (Anaconda, ipython, Visual Studio python) (0) 2014.09.21 TLS, TEB, PEB, SEH (0) 2014.01.08 IAT(Import Address Table) , EAT(Export Address Table) (0) 2013.12.28