Rootkit介绍(2)
Windows系统上的Rootkit分为User mode和Kernel mode两种,取决于它是采用何种方式修改操作系统的。
举个例子,对于一个典型的WIN32 API调用,例如CreateFile
User Mode:
Application --> Kernel32.dll --> NT.dll
接着通过调用 INT 2EH进入
Kernel Mode:
--> KiServiceTable --> NTExecutives
在这一调用系列中,Rootkit可以修改任何一处,最终目的都是一样的,控制特定的系统调用的返回结果。例如,如果修改了FindFirstFile/FindNextFile调用的结果,那么不管你用DIR命令,还是Explorer, 都看不到Rootkit想要隐藏的文件。
以往,不管是User Mode的Rootkit,还是Kernel Mode的Rootkit,主要是hook/intercept API调用。最近的发展是,Kernel Mode的Rootkit直接修改关键的Kernel Mode的数据结构,例如把自己的PCB从系统的活动进程表中直接删除。这种Rootkit,要检测起来是非常难办的。