-
-
[求助]重载内核后对Object Hook的处理
-
发表于:
2013-8-23 00:50
6417
-
重载内核对于SSDT hook和一般的inline hook很有效,但似乎无法解决Object hook(或者说Object Type hook).
WRK中几个调用Object Type中的Procedure的函数都是通过宏OBJECT_TO_OBJECT_HEADER去取得POBJECT_TYPE,那么最终取到的POBJECT_TYPE = POBJECT_BODY - 0x18,也就是在老内核里,那么从中取得的Procedure的指针也是原来到,最后还是会被HOOK。
翻了下各种源码,似乎没有找到特别的处理,莫非只能硬编码后hook新内核中的ObpCreateHandle等函数处理了?处理似乎比较复杂,那么多的Procedure中很多都可能为NULL也可能不为NULL(对象类型不同就不同),非NULL的话还的检查一下合法性,而且不太清楚是不是有的合法的驱动程序会新建一个TYPE,这样处理策略会比较灵活。
求教一下各位的解决方法,莫非只对process和Thread进行处理?还是干脆hook那些导出的对象头函数
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!