刘收获

导航

2018年1月22日 #

几个常用内核函数(《Windows内核情景分析》)

摘要: 参考:《Windows内核情景分析》 0x01 ObReferenceObjectByHandle 这个函数从句柄得到对应的内核对象,并递增其引用计数。 两个特殊情况: #define NtCurrentProcess() (HANDLE)-1 #define NtCurrentThread() ( 阅读全文

posted @ 2018-01-22 23:35 沉疴 阅读(2120) 评论(0) 推荐(0)

句柄的创建

摘要: 创建对象的三大步骤: 1.通过ObCreateObject函数创建目标对象。 2.目标对象本身的初始化 3.通过ObInsertObject将目标对象插入对象目录和句柄表,并返回句柄。 ObCreateObject函数用来创建一个指定类型的内核对象。 其实真正的工作函数是ObpAllocateObj 阅读全文

posted @ 2018-01-22 20:44 沉疴 阅读(2883) 评论(0) 推荐(0)

内核对象

摘要: 0x01 对象 在计算机中,“对象”是个专有名词,其定义是“一个或一组数据结构及定义在其上的操作” 。 对于几乎所有的内核对象,windows都提供一个统一的操作模式,就是先通过系统调用打开或创建目标对象,让当前进程与目标对象之间建立起连接,然后再通过别的系统调用进行操作,最后通过系统调用关闭对象。 阅读全文

posted @ 2018-01-22 20:00 沉疴 阅读(1421) 评论(3) 推荐(1)

句柄与句柄表(数据结构,源码分析)

摘要: 0x01 句柄,句柄表概念 任意进程,只要每打开一个对象,就会获得一个句柄,这个句柄用来标志对某个对象的一次打开,通过句柄,可以直接找到对应的内核对象。句柄本身是进程的句柄表中的一个结构体,用来描述一次打开操作。句柄值则可以简单看做句柄表中的索引,并不影响理解。HANDLE的值可以简单的看做一个整形 阅读全文

posted @ 2018-01-22 17:05 沉疴 阅读(3925) 评论(0) 推荐(0)