Tabulky systémových volání

Tabulka systémových volání (System Service Descriptor Table – SSDT) je velmi důležitou strukturou nejen jádra Windows. Tvoří součást mechanismu systémových volání, který umožňuje obyčejným aplikacím (běžícím v uživatelském režimu) komunikovat s jádrem.

Přesněji, v tabulce systémových volání jsou uloženy adresy funkcí, které mohou aplikace z uživatelského režimu vyvolat. Jedná se v podstatě o jeidný způsob (nepočítáme-li různá synchronizační primitiva a sdílenou paměť), jak aplikace může s jádrem interagovat. Kdo má tedy kontrolu nad touto tabulkou, má pod palcem i běh všech aplikací. Z tohoto důvodu tuto struktur často modifikovaly a modifikují nejen různé viry či rootkity, ale i bezpečnostní software, zejména moduly HIPS.

Abyste mohli tabulky systémových volání nějak smysluplně využít, musíte vědět, na jakých indexech (tabulka je v podstatě pole) se nachází jaké rutiny (říká se jim systémové služby). Tyto informace můžete získat jednak pohledem do nástroje SSDTInfo, nebo prozkoumáním následujících textových souborů, které obsahují názvy systémových služeb pro většinu dnes používaných verzí Windows.

Každý textový soubor je tvořen pouze jmény systémových služeb. Jejich index odvodíte snadno s čísla řádku. První řádek odpovídá indexu 0, druhý řádek indexu 1 atd.

Tabulky systémových volání se nacházejí v jádře Windows celkem dvě. Jedna , SSDT, obsahuje systémové služby pro práci s procesy, vlákny, soubory a dalšími základními objekty. Druhá, SSDT Shadow, slouží pro obsluhu grafického uživatelského rozhraní.

Verze OS SSDT SSDT Shadow
Windows 2000 SP4 TXT TXT
Windows XP SP3 x86 TXT TXT
Windows Server 2003 R2 x86 TXT TXT
Windows Vista SP1 x86 TXT TXT
Windows 7 x86 TXT TXT
"Matika je hrozně exaktní věda, jen se občas musí něco zanedbat."