V páté kapitole se také dozvíte, co je to a k čemu slouží mechanismus systémových volání. Dočtete se tam také, že pro něj důležitými datovými strukturami jsou tabulky systémových volání a že Windows obsahuje tyto struktury rovnou dvě.
První tabulka systémových volání se stará o zprostředkování rutin pro práci se základními entitami operačního systému, mezi které patří procesy, vlákna a soubory. Druhá tabulka, též označovaná jako stínová, dovoluje aplikacím používat grafické rozhraní pro komunikaci s uživatelem.
Projekt SSDTInfo ukazuje, jak lze o těchto veledůležitých strukturách zjistit spoustu informací a rozhodnout, zda nebyly nějakým způsobem modifikovány. Software mění tabulky systémových volání jak k zajištění bezpečnosti před škodlivými programy, tak i na jejich ochranu.
Předtím než může začít aplikaci předávat všechny potřebné informace, musí ovladač ssdtinfo.sys obě tabulky systémových volání najít. V případě první zmiňované struktury se jedná o velmi jednoduchý krok, protože je exportována hlavním modulem jádra (ntoskrnl.exe, ntkrnlpa.exe). V případě stínové tabulky jsem použil postup, který sice není příliš elegantní, ale ukazuje názorněji, jak systémová volání na 32bitových verzích Windows probíhají. A na jiných verzích operačního systému ovladač ani nefunguje, ačkoliv tuto funkcionalitu plánuji přidat v blízké budoucnosti. Zatím jsem totiž neviděl žádná nástroj, který by dovoloval číst informace o tabulkách systémových volání na platformě x64.
Systém | Verze kernelu | |
Windows XP 32bit | * | |
Windows Server 2003 R2 32bit | * | |
Windows Vista 32bit | * | |
Windows 7 32bit | * |