:3:内核对象是经久不衰的讨论的问题。
微软创建了很多类型的对象比如:进程对象,端口对象,注册表对象,调试对象。。。。
:cool:
(Windows 工作模式几乎是:打开内核对象->吧进程和目标进程建立起来->在通过系统操作->最后在关闭内核对象)
[COLOR="rgb(153, 50, 204)"]1.也就是无论当做哪一个环节被我们干涉,对象操作目的都将随着我们的改变而改变~[/COLOR]
:cool:
首先 任何的一个对象都有 对象头(Object_header)和具体对象结构构成
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结构体
:rolleyes:绕了一大圈有点像绕口令的感觉。:p:
:D:现在我们就动手做自己的对象吧~
看图附件 82111
:o:打一下小广告 群:121157016 禁止扯淡,潜水可以~:o: 老V还有几头牛都在里面
微软创建了很多类型的对象比如:进程对象,端口对象,注册表对象,调试对象。。。。
:cool:
(Windows 工作模式几乎是:打开内核对象->吧进程和目标进程建立起来->在通过系统操作->最后在关闭内核对象)
[COLOR="rgb(153, 50, 204)"]1.也就是无论当做哪一个环节被我们干涉,对象操作目的都将随着我们的改变而改变~[/COLOR]
:cool:
首先 任何的一个对象都有 对象头(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结构体
:rolleyes:绕了一大圈有点像绕口令的感觉。:p:
:D:现在我们就动手做自己的对象吧~
看图附件 82111
:o:打一下小广告 群:121157016 禁止扯淡,潜水可以~:o: 老V还有几头牛都在里面