系统相关
首页 > 系统相关> > 【Windows内核原理与实现】读书笔记(五)

【Windows内核原理与实现】读书笔记(五)

作者:互联网

原文链接:http://www.cnblogs.com/XjChenny/archive/2012/02/24/2367174.html

事件追踪(ETW)

Windows提供了统一的跟踪和记录事件的机制,称为ETW。用户模式的应用程序和内核模式的驱动程序都可以使用ETW来记录事件。ETW是直接由内核支持的事件记录机制,在它的框架结构中,共有三种组件:

Windows内置了一个内核日志记录器(kernel logger)作为ETW提供者,专门用于记录内核和核心驱动程序的事件。此内核日志记录器是由WMI(Windows Management Instrumentation,Windows管理规范)设备驱动程序实现的,它的驱动程序的名称为“WMIxWDM”。

WMI是工业标准WBEM(Web-Based Enterprise Management)的一个实现。内核日志记录器是一个事件提供者,它有一个预定义GUID,即内核变量SystemTraceControlGuid。内核日志记录器支持多种事件类,采用标志位(flag)来指示是否记录某一类型的事件。进一步将这些事件分为8个组,每个组使用一个掩码(29位)来描述。系统的全局组掩码是由全局变量PerfGlobalGroupMask定义的。

缓冲区管理是WMI驱动程序的重要职责之一。

微软提供了一个性能工具xperf,它既是一个控制器,也是一个消费者。Xperf利用I/O接口(NtDeviceIoControlFile函数)与WMI驱动程序进行通信。Windows API提供了事件追踪API(位于advapi32.dll模块中),因此用户模式应用程序可以很方便地操纵和控制WMI驱动程序。

 

安全性管理

Windows安全模型中,winlogon负责系统登录,包括对用户身份的认证,lsass负责管理系统本地安全策略,并将这些策略通知到内核中的SRM。在内核中,SRM负责实现基于对象的访问控制以及系统全局安全策略的实施。

SRM与lsass至关重要,它们相互之间通过LPC进行通信,它们的LPC链接在系统初始化时建立,一旦双向LPC连接建立起来,它们的LPC端口便不再接受任何其他的连接请求。

Windows的自主访问模型与对象管理器集成在一起,每一种对象类型都定义了一个Security方法,该方法返回一个对象的安全信息。线程在访问一个对象以前必须先打开这个对象,并获得一个指向该对象的句柄。这个模型中,每一个线程都有一个安全环境,其中最重要的信息是一个访问令牌,代表了该线程的用户的一次登录;每个对象都有一个自主访问控制列表(ACL),指明了允许谁以何种方式访问该对象,而拒绝哪些用户以何种方式访问它。为了访问一个对象,线程可以不使用它所属进程的安全环境,而是以其他账户身份来运行的安全环境,这称为模仿(impersonation)。同一个进程中的其他线程也可以利用已经得到的句柄来访问该对象。

令牌(TOKEN)代表了SRM中用到的主题,它描述了一个用户的一次登录,由winlogon进程在认证了用户身份以后创建。

在Windows中,特权是由LUID对象来标识的,LUID代表了一个本地唯一标识符(Locally Unique Identifier),由两个LONG成员构成。

Sep为前缀的函数是SRM的内部函数。

转载于:https://www.cnblogs.com/XjChenny/archive/2012/02/24/2367174.html

标签:ETW,驱动程序,读书笔记,Windows,对象,事件,内核
来源: https://blog.csdn.net/weixin_30507481/article/details/99833961