Tento projekt se také váže k textu v páté kapitole a jeho cílem je ukázat, jak lze pomocí modifikací tabulek systémového volání monitorovat (a potažmo měnit) chování aplikací běžících v uživatelském režimu. Použitá technika se též označuje jako SSDT hooking.
Projekt se opět skládá z ovladače a aplikace. Ovladač přesměruje všechny systémové služby z tabulky systémových volání do svých speciálních rutin a zjišťuje, s jakými parametry jsou jednotlivá volání prováděna a jaká je návratová hodnota originální systémové služby. Tyto údaje následně posílá aplikaci, která je zobrazuje.
Aplikace nezobrazuje hodnoty argumentů systémových volání, protože by se jednalo o velké zesložitění celého ovladače. Musel by totiž ověřovat platnost jednotlivých ukazatelových argumentů, což jak se píše v páté kapitole, není příliš snadná procedura.
Ovladač syscallmon.sys se zaměřuje pouze na “nestínovou” tabulku systémových volání. Rozšíření monitorování i na druhou tabulku však není příliš složité.
Vzhledem k tomu, že tabulka systémových volání pro systémové služby hlavního modulu jádra je na 64bitových verzích Windows monitorována technologií PatchGuard, projekt Syscallmon funguje pouze na platformě IA32, jak je také patrné z tabulky níže.
Systém | Verze kernelu | |
![]() |
Windows XP SP2/SP3 32bit | * |
![]() |
Windows Server 2003 R2 32bit | * |
![]() |
Windows Vista 32bit | * |
![]() |
Windows 7 32bit | * |