[Win10/Driver]枚举已加载内核(驱动)+对象钩子+对象类型(ObjectType)
运行环境:WIN10
涉及工具:
VS2019+SDK+WDK
编程语言:
C 少量CPP特性
以下为主题内容:
如题,只针对win10。因为win10的PsLoadedModuleLIst这个变量导出了(可以用MmGetSystemRoutineAddress获取)示例:
windbg环境下输出
不用像低版本一样需要ShellCode定位这么麻烦
大体讲一下我都是怎么获取的
PsLoadedModuleList是win10已导出的
至于对象钩子,因为PsProcessType(一般也就这个有点用)是指向的OBJECT_TYPE这个内核对象
win10 _OBJECT_TYPE:
kd> dt _OBJECT_TYPE
nt!_OBJECT_TYPE
+0x000 TypeList : _LIST_ENTRY
+0x010 Name : _UNICODE_STRING
+0x020 DefaultObject : Ptr64 Void
+0x028 Index : UChar
+0x02c TotalNumberOfObjects : Uint4B
+0x030 TotalNumberOfHandles : Uint4B
+0x034 HighWaterNumberOfObjects : Uint4B
+0x038 HighWaterNumberOfHandles : Uint4B
+0x040 TypeInfo : _OBJECT_TYPE_INITIALIZER
+0x0b8 TypeLock : _EX_PUSH_LOCK
+0x0c0 Key : Uint4B
+0x0c8 CallbackList : _LIST_ENTRY
不难看出 +0xC8就是CallBack回调的LIST_ENTRY链表头 然后遍历就OK了
这里面弄了个小技巧 可以找出对象钩子所属的驱动 但是时间复杂度很点高
ObjectType获取比较麻烦
win10没有导出ObTypeIndexTable这个指向OBJECT_TYPE的变量
用的是ObGetObjectType内核函数+ShellCode定位。但是也蛮简单
总的来说,win10获取这些东西还是很简单的。
菜鸟作品,非0基础的请右上角。
**** Hidden Message *****
谢谢分享 谢谢分享 谢谢分享 感谢老大{:5_116:} {:5_116:}{:5_116:}
谢谢分享 好东西看看啊把 谢谢分享 谢谢分享
非常感谢,学习了