首页
社区
课程
招聘
[原创]浅谈之创建自己的对象
发表于: 2013-8-26 01:44 12903

[原创]浅谈之创建自己的对象

2013-8-26 01:44
12903
内核对象是经久不衰的讨论的问题
     微软创建了很多类型的对象比如:进程对象,端口对象,注册表对象,调试对象。。。。

(Windows 工作模式几乎是:打开内核对象->吧进程和目标进程建立起来->在通过系统操作->最后在关闭内核对象
1.也就是无论当做哪一个环节被我们干涉,对象操作目的都将随着我们的改变而改变~

首先 任何的一个对象都有 对象头(Object_header)和具体对象结构构成
  kd> dt _object_header
nt!_OBJECT_HEADER
   +0x000 PointerCount     : Int4B
   +0x004 HandleCount      : Int4B
   +0x004 NextToFree       : Ptr32 Void
   +0x008 Type             : Ptr32 _OBJECT_TYPE
   +0x00c NameInfoOffset   : UChar
   +0x00d HandleInfoOffset : UChar
   +0x00e QuotaInfoOffset  : UChar
   +0x00f Flags            : UChar
   +0x010 ObjectCreateInfo : Ptr32 _OBJECT_CREATE_INFORMATION//创建时候的对象信息
   +0x010 QuotaBlockCharged : Ptr32 Void
   +0x014 SecurityDescriptor : Ptr32 Void
   +0x018 Body             : _QUAD   


typedef struct _OBJECT_HEADER {
        LONG PointerCount;
        union {
                LONG HandleCount;
                PSINGLE_LIST_ENTRY SEntry;
        };
        POBJECT_TYPE Type;
        UCHAR NameInfoOffset;
        UCHAR HandleInfoOffset;
        UCHAR QuotaInfoOffset;
        UCHAR Flags;
        union
        {
                POBJECT_CREATE_INFORMATION ObjectCreateInfo;
                PVOID QuotaBlockCharged;
        };

        PSECURITY_DESCRIPTOR SecurityDescriptor;
        QUAD Body;
} OBJECT_HEADER, *POBJECT_HEADER;
我们今天关注的是 产生自己的新对象 实现XX00
2.我们要用到 ObCreateObjectType这个函数。
这个函数 会根据我们提交的申请单直接挂在对象目录里面,对象的核心在于 Object_Type中的Info所对应的 数据类型 也就是_OBJECT_TYPE_INITIALIZER结构体

绕了一大圈有点像绕口令的感觉。
现在我们就动手做自己的对象吧~
看图

打一下小广告 群:121157016 禁止扯淡,潜水可以~  老V还有几头牛都在里面

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

上传的附件:
收藏
免费 5
支持
分享
最新回复 (24)
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
实现XX00
2013-8-26 07:10
0
雪    币: 86
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
学好语文,再来发帖,谢谢
2013-8-26 07:20
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
应该是个好东西
2013-8-26 08:05
0
雪    币: 286
活跃值: (57)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
xjj
5
自己创建个OBJECTTYPE没什么新奇,最关键是如何在驱动反复加载、卸载时,你的OBJECTTYPE还能继续使用,
这个才是核心,当然你也可以说,我写个驱动,专门负责产生新的OBJECTTYPE,但毕竟我们在实际应用中,还是希望一个驱动完成你在R0要做的所有事,所以,自己创建的OBJECTTYPE的重用问题就出来了。自己摸索吧,你会找到答案~~
2013-8-26 08:14
0
雪    币: 6400
活跃值: (4160)
能力值: ( LV10,RANK:163 )
在线值:
发帖
回帖
粉丝
6
最后发现自己创建也不给力,如果xx hook前检测一下就over了,还是Patch判断的好用点.......
2013-8-26 09:30
0
雪    币: 2177
活跃值: (2045)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
7
莫名的发现了AntiSpy的身影啊,哈哈。
2013-8-26 09:47
0
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
make
2013-8-26 10:37
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
来看看,LZ辛苦了.
2013-8-26 10:48
0
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
楼主换头像,差点不认识了。
2013-8-26 10:49
0
雪    币: 114
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这字看的费劲
2013-8-26 11:47
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这方法好,屌丝们再也不愁没有对象了.
2013-8-26 13:12
0
雪    币: 458
活跃值: (306)
能力值: ( LV12,RANK:400 )
在线值:
发帖
回帖
粉丝
13
围观大牛
2013-8-26 13:26
0
雪    币: 437
活跃值: (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
mark
2013-8-26 13:26
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
15
ObCreateObject未文档化。。
这么纠结还不如直接Hook几个内核对象API
2013-8-26 14:03
0
雪    币: 143
活跃值: (263)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
16
2013-8-26 14:26
0
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
17
我的语文确实很差,你不爽啊! 你们这种人要么喷,说这说那,有本事自己也来几篇文章给大家看看~
2013-8-26 18:33
0
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
棒子师傅,你化成灰,我也认得,人家那id多响亮,感情你看人这看脸...
2013-8-26 18:51
0
雪    币: 167
活跃值: (120)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
19
用功好,但别撸太晚,对身体不好~
2013-8-26 20:48
0
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
=,= 真的么,这是真的么。
2013-8-26 23:19
0
雪    币: 86
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
孩子别激动,我没说你分享技术不好,你若分享,应该表达出技术,排版出文章,你这排版,说一句断一句的姿势...... 你连文章都不注意流程,你代码你逆向.....
2013-8-27 08:56
0
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
22
思路还是清晰的~ 源码排版有时候就乱了~
2013-8-27 10:04
0
雪    币: 0
活跃值: (963)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
受教了,顶你
2013-8-27 10:29
0
雪    币: 216
活跃值: (144)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
24
win的對象管理值得探討的不是五花八門的hook和大量undocumented的操作,而是設計模型,解決橫向和縱向關係對象的時候就可以參考這種樹的設計,譬如管理網絡協議的,也可以採用這種管理模型,/ethernet/ip/tcp/...
/ethernet/ip/udp ..,還有句柄表,也是基于樹的一個模型。。越是深層次的管理機制模型越突出,參考價值約大。。。
2013-8-28 11:40
0
雪    币: 245
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
辛苦了谢谢分享心得
2013-8-29 00:21
0
游客
登录 | 注册 方可回帖
返回
//