
windows内核
strongxu
这个作者很懒,什么都没留下…
展开
-
《windows内核情景分析》句柄和句柄表
每个进程都有个句柄表,在EPROCESS结构的0xc4偏移处的ObjectTable,类型为_HANDLE_TABLE,用来指向本进程的句柄表 第一项TableCode是个指针数组,对应为HANDLE_TABLE_ENTRY数据结构,每个有效的句柄都对应着(某个)句柄表中的一个表项 表项的第一项Object指向某个对象的头部,而该表项在句柄表中的位置则取原创 2009-10-10 08:12:00 · 904 阅读 · 0 评论 -
《windows内核情景分析》对象的创建
创建系统调用的过程: 1.通过ObCreateObject()创建目标对象 2.目标对象本身的初始化 3.通过ObInsertObject()将目标对象插入对象目录和句柄表,并返回句柄。 凡是创建对象的系统调用,都要提供至少两个输入参数,其一是DesiredAccess,说明所创建对象的访问模式;另外一个是ObjectAttributes,这是一原创 2009-10-10 16:47:00 · 537 阅读 · 0 评论 -
DPC函数
DPC是Deferred Procedure Call,推迟的过程调用。内核中每个CPU都有一个DPC请求队列,DPC请求队列在每个CPU的PRCB数据结构中 设备对象的数据结构DEVICE_OBJECT中有个成分Dpc,它是KDPC数据结构,用来设置有关本设备对象的DPC函数的信息。 ntdll!_KDPC +0x000 Type : In原创 2009-12-28 20:29:00 · 3152 阅读 · 0 评论 -
《Windows内核情景分析》内存区间的动态分配
物理页面是以PHYSICAL_PAGE代表的。MmPageArray指向PHYSICAL_PAGE的数组(MS是在ReactOS中是这样,真正Windows内核找不到PHYSICAL_PAGE结构,不知道是未公开还是策略不一样) 物理内存有三种 1.已分配的内存队列:存放正在被使用的内存 2.待清理的内存队列:存放已被释放的内存,但是这些内存未被清零 3.空闲队列原创 2010-01-08 10:57:00 · 2732 阅读 · 0 评论 -
《Windows内核情景分析》系统空间缓冲区管理
用户空间是从“堆(heap)”分配缓冲区的,内核中是从“池(pool)”中分配的。 用户空间的堆是属于进程的,而内核中的池则是全局的,属于整个系统。内核中池有两种:PagedPool,所占页面可以倒换的,NonPagedPool,所占页面是不可倒换的,每个页面都占着物理内存。 ntdll!_POOL_TYPE NonPagedPool = 0 PagedPo原创 2010-01-11 20:11:00 · 2724 阅读 · 0 评论 -
UNREFERENCED_PARAMETER
转帖:http://blog.youkuaiyun.com/aiguo26/article/details/855347作用:告诉编译器,已经使用了该变量,不必检测警告!在VC编译器下,如果您用最高级别进行编译,编译器就会很苛刻地指出您的非常细小的警告。当你生命了一个变量,而没有转载 2011-10-09 14:40:57 · 1934 阅读 · 0 评论