1.什么是内核对象
种类:访问令牌对象、事件对象、文件对象、文件映射对象、I/O完成端口对象、作业对象、信号量对象、线程对象、
邮件槽对象、互斥量对象、管道对象、 可等待的计时器对象、线程池工厂。
句柄来控制内核对象,内核对象由windows维护。
使用内核对象查看工具:WinObj.exe
句柄(Handle)标识了内核对象,进程相关。
内核对象的计数及销毁:和java垃圾回收系统机制类似。
内核对象的安全性:安全描述符(SD),谁创建,谁能使用,谁不能使用。
所有创建内核对象的函数几乎都有参数指向SECURITY_ATTRIBUTES结构:NULL默认安全性。[p35]
IpSecurityDescriptor:安全描述符
检查:访问内核对象时,会先告知打算进行的操作。若返回NULL,可以用getLastError。
错误:若告知的操作为KEY_ALL_ACCESS,会导致非管理员用户不能使用。要使用正确的安全访问标志。
区分内核对象及用户对象、GDI对象:看创建对象时是否有PSECURITY_ATTRIBUTES参数。
2.进程内核对象句柄表
句柄表:进程初始化时分配,供内核使用。
内存块指针:指向被分配