虚拟化技术深入解析:安全线程、HVCI及系统启动流程
1. 安全线程与调度
在虚拟化安全模型(VSM)中,执行单元是安全线程,它们存在于安全进程所描述的地址空间中。安全线程可以是内核模式线程或用户模式线程,VSM 会在每个用户模式安全线程和 VTL 0 中的普通线程之间维持严格的对应关系。
1.1 安全线程的创建
安全内核线程调度完全依赖于普通 NT 内核,安全内核本身不包含专有调度器。线程创建分为两个部分:
- 第一部分 :创建执行线程对象,分配其内核和用户栈。调用 KeInitThread 例程,为用户模式线程设置初始线程上下文。 KiStartUserThread 是在新线程上下文中执行的第一个例程,它会降低线程的中断请求级别(IRQL)并调用 PspUserThreadStartup 。
- 第二部分 :执行控制返回给 NtCreateUserProcess ,稍后它会调用 PspInsertThread 来完成线程的初始化,并将其插入到对象管理器命名空间中。当 PspInsertThread 检测到线程属于安全进程时,会调用 VslCreateSecureThread ,该函数使用 Create Thread 安全服务调用请求安全内核创建关联的安全线程。安全内核会验证参数,获取进程的安全映像数据结构,分配安全线程对象及其线程环境块(TE
超级会员免费看
订阅专栏 解锁全文
21

被折叠的 条评论
为什么被折叠?



