[内核]重看一遍Rootkits一书的感慨
11月 10, 2008 – 10:24 下午感慨一下,今天重新认真看了一遍《Rootkits》一书,发现以前看的真的很潦草。
今天看到加载驱动那一章,说了一个草率方式和一个正规方式,草率方式很多人也都知道 ZwSetSystemInformation加载,正规方式就是服务加载,但是仔细看才发现一个问题。
ZwSetSystemInformation加载驱动的时候驱动是以可分页方式加载的,也就是说,驱动所在的内存可能会被移到硬盘,驱动的很多函数都是要求不允许存在在分页内存的,否则会BSOD,看到这个问题我首先想到的是用MDL描述这块内存为非分页,不知道可行不,我也没试,不过 www.rootkit.com 上提供了一个代码,Hoglund 写的,他是通过ExAllocatePool申请一块非分页内存然后把代码拷入这块内存,然后用内联钩子挂钩 NtDeviceIoControlFile 函数实现的。
不得不感慨下。。。(纯属神经)




