首页
社区
课程
招聘
[分享]ObOpenObjectByPointer在win7下似乎可以监控注册表了
发表于: 2013-7-1 16:13 5421

[分享]ObOpenObjectByPointer在win7下似乎可以监控注册表了

2013-7-1 16:13
5421
最近在研究ObOpenObjectByPointer这个调用非常频繁的函数..

最方便的办法自然就是去HOOK他啦

ObOpenObjectByPointer这个函数声明如下:

NTSTATUS ObOpenObjectByPointer(
  _In_      PVOID Object,
  _In_      ULONG HandleAttributes,
  _In_opt_  PACCESS_STATE PassedAccessState,
  _In_      ACCESS_MASK DesiredAccess,
  _In_opt_  POBJECT_TYPE ObjectType,
  _In_      KPROCESSOR_MODE AccessMode,
  _Out_     PHANDLE Handle
);
其中的ObjectType指定了Object的类型

其定义在wdm.h中

extern POBJECT_TYPE *CmKeyObjectType;

extern POBJECT_TYPE *IoFileObjectType;

extern POBJECT_TYPE *ExEventObjectType;

extern POBJECT_TYPE *ExSemaphoreObjectType;

extern POBJECT_TYPE *TmTransactionManagerObjectType;

extern POBJECT_TYPE *TmResourceManagerObjectType;

extern POBJECT_TYPE *TmEnlistmentObjectType;

extern POBJECT_TYPE *TmTransactionObjectType;

extern POBJECT_TYPE *PsProcessType;

extern POBJECT_TYPE *PsThreadType;

extern POBJECT_TYPE *SeTokenObjectType;

仔细看看这些定义

一直以来大家都是通过PsProcessType或PsThreadType来保护自己的进程.现在看来有别的东西可以一起保护了..

IoFileObjectType -> 对文件保护

CmKeyObjectType -> 对注册表保护

SeTokenObjectType -> 权限审核

其中标红的,是CmKeyObjectType

从名字可以看出来.通过注册表键句柄获取注册表对象.
至于在做什么.通过DesiredAccess想来可以做下过滤

还没仔细看..但是突然发现..使用xp的编译器去编译.会提示找不到这个类型的...

那就明白了 这部分代码只有在是WIN7下才有~

还不知道原因.但是这说明这个函数被调用的将更频繁了.谁能看看该怎么获取object的内容呢...

来源:皓皓的地盘 -> ObOpenObjectByPointer在win7下似乎可以监控注册表了

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 219
活跃值: (793)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
2
win7就像个鬼,xphook一些hook都没事情,win7直接蓝屏~
2013-7-1 18:35
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
先不评价是否蓝屏.,
HOOK肯定不稳定...所以要尽可能少的去HOOK
就是希望可以在这里HOOK一处.搞定许多事情
2013-7-1 18:39
0
游客
登录 | 注册 方可回帖
返回
//