
PoEdu培训(po学校),内核对象
q739639550
这个作者很懒,什么都没留下…
展开
-
001_内核对象概述
内核对象概述内核对象到底意味这什么,句柄本质是什么用到的工具WinObj启动需要管理员权限 观察OBjectTypes枚举出系统当中可能出现的类型,很多看的眼都花了windows为什么要设计这么多内核对象 ???为了安全 windows分为 R3 和 R0 R3完全开放没有监管,谁到可以访问原创 2017-07-03 11:24:44 · 242 阅读 · 0 评论 -
002_设置使用计数的目的
我们看到的内核对象是有很多种的,多的让人花眼,但是他们还是有共性的,每一个内核对象里面都会有一个使用计数。R3和R0直接的通信是不可以的,所以只能通过微软提供的某些函数来,内核对象里面允许的操作,但是并不希望把,函数的生死权都教给你来控制。于是设计出一个使用计数。任何一个内核对象都是属于操作系统,它不属于某一个进程,任何的进程可以使用任何的内核对象,但是不能决定内核对象的生或者原创 2017-07-03 11:26:10 · 298 阅读 · 0 评论 -
003_安全性设置及作用
使用计数,让内核对象拥有了让多个进程使用,并且能正常释放之后,如果说我放开所有的进程都能访问内核对象的权限,毫无疑问会出现问题的(多线程没锁的 更改操作(线程安全)),都有一个安全性的设置,都不会过多的设置,设置为NULL,让他继承进程的安全性。实际上安全性设置是有很多种的,假设我只允许他读,那么别人想正常打开的话必须设置只读否则打开失败,来控制内核对象在什么情况是安全的,什么情况能打开原创 2017-07-03 11:27:43 · 288 阅读 · 0 评论 -
004_句柄表及句柄的本质
进程内核对象R0句柄表(查不到,不希望暴露)索引 (就是句柄)指向内核对象的指针(真真正正指向内核对象的指针)标识位启动一个 File Obj ->地址填充到我当前的进程的内核对象当中, 生成索引 从0开始以四字节成倍增长给到任何一个进程将没有办法使用A进程有 自己的索引表 B进程也有自己的索引表所以句柄是不能跨进程的原创 2017-07-03 11:29:52 · 290 阅读 · 0 评论 -
005_深入理解句柄表及索引
启动有个进程之后,回去创建进程内核对象,回去开辟一块空间。内核对象也开辟一块空间 存放 句柄表MainTread找空白的区域,把主线程句柄的地址放入到当前句柄表,生成索引CloseHandle 关闭 找当前句柄的索引 如果找到内核对象递减 返回ture 否则返回false所以R3层的句柄就是一个索引原创 2017-07-03 11:32:58 · 428 阅读 · 0 评论 -
006_句柄表存在的意义
因为很多新手,只负责创建,却忘记回收。所以当进程结束的时候,我就可以按照句柄表一一进行递减,如果没有别的进程使用,那么能正常的 回收我们所使用的内核对象 ,便于我里面使用了哪些HANDLE,为了维护系统的可靠性 。那么能不能看到索引表。是可以的通过工具原创 2017-07-03 11:37:29 · 348 阅读 · 0 评论 -
007_内核对象的Signal状态
signal = FALSE 标志进程 初始化或者运行的时候 signal一直是false 当完成之后 变成true,当前进程内核对象可授信状态线程标准输入输出流事件内核对象互斥体信号可等待计时器作业//同步// 进程和进程之间的同步// 守护进程 父进程// 我检测到我的进程消亡了 然后在启动一个进程// 进程变原创 2017-07-03 11:38:18 · 382 阅读 · 0 评论 -
008_WaitForSingleObject应用
三种可能HANDLE hThread = (HANDLE)_beginthreadex(nullptr, 0, ThreadFunc, 0, 0, nullptr);WaitForSingleObject(hThread, INFINITE);//无限等待 -》30天一般DWORD dw = WaitForSingleObject(hThread, 1000);switch (dw原创 2017-07-03 12:25:57 · 206 阅读 · 0 评论 -
009_内核对象
//事件内核对象 // 自动重置 // 手动重置// CreateEvent(//CreateEvent();//CreateEventEx();//xp下不能使用HANDLE hEvent = CreateEvent(nullptr,//权限安全TRUE, //是否手动重置FALSE,//属于无信号的状态TEXT("Color"));//我希望其他地方原创 2017-07-03 12:30:26 · 195 阅读 · 0 评论