首页
社区
课程
招聘
[讨论]hook OBJECT_HEADER->POBJECT_TYPE的疑问
发表于: 2013-9-17 12:58 7431

[讨论]hook OBJECT_HEADER->POBJECT_TYPE的疑问

2013-9-17 12:58
7431
继续纠结object hook

MJ0011 N多年前的一篇关于object type hook的文章中,介绍的hook位置是系统的各种Procedure,后来也看到一些文章把hook的位置换到了系统的OBJECT_TYPE中这些Procedure的指针。

而最近看到另外一些文章,提出可以hook OBJECT_HEADER->POBJECT_TYPE,也就是对象头中的对象类型指针指向自定义的类型(或者Windows 7下的type index)。这种方法看起来很不错,因为对象头是每个对象私有的,hook私有的位置可以比较方便地实现保护特点对象(比如说禁止打开某个进程)。

但今天看WRK的时候发现了一个细节:

NTSTATUS
ObpCreateHandle (
    IN OB_OPEN_REASON OpenReason,
    IN PVOID Object,
    IN POBJECT_TYPE ExpectedObjectType OPTIONAL,
    IN PACCESS_STATE AccessState,
    IN ULONG ObjectPointerBias OPTIONAL,
    IN ULONG Attributes,
    IN POBP_LOOKUP_CONTEXT LookupContext,
    IN KPROCESSOR_MODE AccessMode,
    OUT PVOID *ReferencedNewObject OPTIONAL,
    OUT PHANDLE Handle
    )
//省略若干内容
 if ((ARGUMENT_PRESENT( ExpectedObjectType )) &&
        (ObjectType != ExpectedObjectType )) {

        if (LookupContext) {
            ObpReleaseLookupContext( LookupContext );
        }

        return( STATUS_OBJECT_TYPE_MISMATCH );
    }
//……

可以看到,在创建句柄的时候,内核会比较 OBJECT_HEADER->POBJECT_TYPE和调用函数时指定的type,如果不相同的话就会报错。这样后面自己替换上的Produce就没什么事情做了。因此,似乎hook这个位置进行对特定对象的保护(包括实现反object hook) 都会导致这个对象变得彻底无法打开。除非在ObOpenObjectByName和ObOpenObjectByPointer中也作出处理,但这样就显得太麻烦了。

按照上述分析,自定义 object type进行objhook就是完全不可行的了?或者是存在其他细节没有注意到所以得出了错误的结论。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 219
活跃值: (793)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
2
patch object or  create new object  ni 可以看开源的react os
2013-9-17 13:13
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
3
patch的是object还是objecttype。。。
另外有wrk了还用得着reactos么
2013-9-17 13:19
0
雪    币: 49
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
wrk是一部分
reactos虽然不准确 但是基本实现都有
2013-9-17 13:24
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
5
貌似obj相关在wrk中都有吧

跑题了跑题了
2013-9-17 13:39
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
貌似不是建立一个object type了去替换别人的,而是给自己建立一个,防止别人搞自己,所以你指出的这个比较type的位置可能恰好可以用的到。
2013-9-17 15:14
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
7
感觉谁都打不开比较容易出问题
2013-9-17 15:17
0
游客
登录 | 注册 方可回帖
返回
//