Quantcast
Channel: 看雪安全论坛
Viewing all articles
Browse latest Browse all 9556

【原创】浅谈之创建自己的对象

$
0
0
:3:内核对象是经久不衰的讨论的问题
微软创建了很多类型的对象比如:进程对象,端口对象,注册表对象,调试对象。。。。
: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还有几头牛都在里面

上传的图像
文件类型: jpg 360截图20130826014322801.jpg (167.2 KB)
上传的附件
文件类型: rar xiaossshou.rar (7.1 KB)

Viewing all articles
Browse latest Browse all 9556

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>