首页
社区
课程
招聘
[学习分享]VT-X开源学习框架
发表于: 1天前 731

[学习分享]VT-X开源学习框架

1天前
731

前言

想要入门 VT-X 传统的方式都是阅读 Intel SDM(Intel 64 and IA-32 Architectures Software Developer’s Manual) , 这是 Intel 官方 CPU 架构手册,VT-x 的全部细节都在这里
但这几千页的 pdf 着实让人头疼, 更是劝退了很多想要入门的人(包括笔者), 于是根据开源框架进行学习是个新的思路, 可以让你快速入门并见到效果, 有了正反馈在进行深入学习效率会大大提速, 下面推荐几款 github 上优秀的 vt-x 开源框架共大家参考:

1. SimpleVisor

  • git地址: 5d4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6A6L8$3&6W2M7$3y4#2x3o6l9%4i4K6u0r3f1$3W2E0M7r3I4W2g2X3W2K6L8%4t1`.

这个框架是 Windows 下的极简 Type-1 Hypervisor, 特点是代码量小(约几千行), 主要由C和汇编组成(开发过内核驱动的人来说非常友好), 框架内部有清晰演示 VMXON / VMCS 初始化流程, 可以学习到 VMXON 区初始化 \ VMCS 字段设置 \ VM-Exit 处理, 适合想从零理解 VT-x 工作流程的人 (后续笔者也会从这个框架开始入门学习)

1
SimpleVisor 是一款简单易用、可移植的 Intel x64/EM64T VT-x 专用虚拟机管理程序,其目标有两个:尽可能减少汇编代码(仅 10 行),并尽可能减少与 VMX 相关的代码,以支持动态虚拟机劫持和反劫持(即从主机内部虚拟化主机状态),同时还支持 EPT 和 VPID 等高级功能。它目前可在 Windows 和 UEFI 环境下运行。

2. HyperPlatform

  • git地址: 643K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6@1j5h3&6V1j5i4y4S2N6q4)9J5c8V1S2&6M7r3g2J5f1r3I4S2N6r3k6G2M7X3@1`.

这个框架为 Windows 内核驱动型 Hypervisor , 特点是结构清晰并且有大量注释, 重点会涉及EPT (Extended Page Table) \ MSR Hook \ CPUID Hook , 适合想研究 虚拟化监控 + 安全用途 的人

1
2
3
4
5
6
7
8
介绍
HyperPlatform 是一款基于 Intel VT-x 的虚拟机管理程序(又称虚拟机监视器),旨在为 Windows 系统上的研究提供一个轻量级平台。HyperPlatform 能够监视各种事件,包括但不限于对虚拟/物理内存和系统寄存器的访问、中断的发生以及特定指令的执行。
 
研究人员可以自由选择启用和/或禁用任何事件监控功能,并在 HyperPlatform 之上实现自己的逻辑。一些潜在的应用场景包括:
 
分析内核模式 rootkit
实施基于虚拟机的入侵防御系统(VIPS)
对 Windows 内核进行逆向工程

3.Xen

  • git地址: 667K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6^5k6h3&6Q4x3X3c8H3M7X3!0B7k6h3y4@1i4K6u0r3P5r3g2F1

这是一个企业级 Type-1 Hypervisor框架, 支持 VT-x , 其特点是代码庞大(百万行级), 不适合入门,但适合理解工业架构, 在有基础的条件下有企业级需求以及想要深入学习细节的人接触

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
############################################################
__ __ _ _ _
\ \/ /___ _ __ _ _ _ __ ___| |_ __ _| |__ | | ___
 \ // _ \ '_ \ _____| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
 / \ __/ | | |_____| |_| | | | \__ \ || (_| | |_) | | __/
/_/\_\___|_| |_| \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
 
############################################################
 
https://5e0K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2W2L8W2)9J5k6h3!0J5k6H3`.`./
 
Xen是什么?
============
 
Xen 是一款虚拟机监视器 (VMM),最初由……开发。
剑桥大学计算机系统研究组
实验室是英国工程与物理科学研究委员会 (EPSRC) 资助的 XenoServers 项目的一部分。Xen
是根据 GNU 协议发布的可自由分发的开源软件。
GPL。自最初公开发布以来,Xen 的用户群已大幅增长。由 xen.org ( https://c62K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2W2L8W2)9J5k6h3!0J5k6H3`.`. )
牵头的开发社区。
 
此文件包含一些在系统上安装 Xen 的快速入门说明。
您的系统。更多信息请访问https://d20K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2W2L8W2)9J5k6h3!0J5k6H3`.`./
https://wiki.xen.org/

总结

以上内容为笔者为后续学习 VT-X 准备搜集的内容, 供大家参考学习讨论, 如有错漏 请留言


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 2
支持
分享
最新回复 (2)
雪    币: 5786
活跃值: (6836)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我是amd的cpu 咋没有amd的 推荐几个amd的
1天前
0
雪    币: 248
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
木志本柯 我是amd的cpu 咋没有amd的 推荐几个amd的
amd的话推荐看看 Bareflank 
git地址: c02K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6n7j5i4u0W2k6X3I4S2L8X3E0Q4x3V1k6Z5P5i4m8W2M7Y4k6A6M7$3!0J5
这是一个模块化 Hypervisor 框架, 可以用于构建自定义 Hypervisor, 支持 AMD-V 与 VT-x , 主要语言为C++, 主要也是用于教学/研究, 它仅提供启动/停止虚拟机管理程序所需的虚拟化支持, 相比SimpleVisor复杂一些, 因为采用了封装分层加模块化
19小时前
0
游客
登录 | 注册 方可回帖
返回