首页
社区
课程
招聘
Hypervisor From Scratch - 第 1 部分:基本概念和配置测试环境
发表于: 2024-3-30 10:13 12014

Hypervisor From Scratch - 第 1 部分:基本概念和配置测试环境

2024-3-30 10:13
12014

欢迎来到名为“ Hypervisor From Scratch ”的多部分系列教程的第一部分。顾名思义,本课程包含创建基于硬件虚拟化的基本虚拟机的技术细节。如果您遵循本教程,您将能够创建自己的虚拟环境,并了解 VMWare、VirtualBox、KVM 和其他虚拟化软件如何使用处理器的设施来创建虚拟环境。此外,您还可以了解HyperDbg调试器的“VMM”模块内部是如何工作的。

本教程的完整源代码可在 GitHub 上获取:

[ a30K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6e0K9h3&6S2d9$3q4J5N6X3q4F1k6r3W2Q4x3V1k6t1P5i4m8W2M7Y4k6A6M7$3!0J5i4K6u0V1c8Y4u0G2L8g2)9J5k6q4y4U0M7X3q4@1j5$3R3`. ]

为了设置嵌套虚拟化环境,请确保在虚拟机中启用以下功能
图片描述

我们将在本系列的其余部分中经常使用一些关键字,您应该了解它们(大多数定义源自英特尔软件开发人员手册,第 3C 卷)。

Virtual Machine Monitor (VMM): VMM 充当host并完全控制处理器和其他平台硬件。 VMM 能够保留对处理器资源、物理内存、中断管理和 I/O 的选择性控制。

Guest Software: 每个虚拟机 (VM) 都是一个guest软件环境。

VMX Root Operation and VMX Non-root Operation: VMM在VMX root operation中运行, 而guest software在VMX non-root operation中运行.

VMX transitions: VMX root operation和VMX non-root operation之间的转换.

VM entries: 转换为VMX non-root operation.

Extended Page Table (EPT): 一种使用第二层将guest机的物理地址转换为host的物理地址的机制。

VM exits: 从VMX non-root operation转换到VMX root operation.

Virtual machine control structure (VMCS): 是内存中的一种数据结构,在 VMM 管理时,每个 VM 只存在一次(或更准确地说,每个虚拟 CPU 存在一个)。 随着不同 VM之间执行上下文的每次更改,VMCS 都会针对当前 VM 进行恢复,从而使用 VMCS 定义 VM 虚拟处理器和 VMM 控制Guest software 的状态。

VMCS 由六个逻辑组组成:

​ 理器的当前状态信息保存在guest-state区域。

host-state区域:在VM-exit时,处理器的状态信息从host-state区域中加载。

VM-execution 控制区域:在进入VM后,处理器的行为由VM-execution控制区域中的字段提供控

​ 制。例如,可以设置某些条件使得在guest执行中产生 VM-exit.。

VM-exit控制区域:控制处理器在处理VM-exit时的行为,也影响返回VMM后处理器的某些状态。

VM-entry控制区域:控制处理器在处理VM-entry时的行为,也决定进入VM后处理器的某些状态。

VM-exit信息区域:记录引起VM-exit事件的原因及相关的明细信息。也可以记录VMX指令执行失败

​ 后的错误编号。

我发现了一篇很好的作品来说明 VMCS
图片描述
图片描述
不用担心这些字段,我将在后面的部分中清楚地解释其中的大部分内容。 请记住,VMCS 结构因处理器的不同版本而异。

VMX引入了一下新指令
图片描述

图片描述
以下几项总结了 VMM 及其guest软件的生命周期以及它们之间的交互:

现在就够了!

其他与虚拟机管理程序相关的作品和材料。

Awesome virtualization(介绍书籍、论文、项目、课程、CVE 和其他与虚拟机管理程序相关的作品)-6c2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6i4k6h3&6*7k6h3I4Q4x3V1k6S2N6$3g2K6L8$3#2W2i4K6u0V1N6X3W2J5N6s2g2S2L8r3W2*7j5i4c8A6L8$3^5`.

7 天虚拟化:虚拟机管理程序开发系列 - ( f6aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5k6i4k6W2M7Y4y4Q4x3X3g2W2L8X3N6A6L8X3g2W2M7X3W2F1k6#2)9J5c8U0N6Q4x3X3c8V1j5i4W2K6i4K6u0V1N6r3!0Q4x3X3c8$3K9i4u0@1N6h3q4D9K9i4A6S2N6r3W2G2L8W2)9J5k6r3q4Q4x3X3c8K6k6i4u0A6k6i4y4Q4x3X3c8G2L8W2)9J5k6r3S2&6M7r3g2J5N6X3W2K6L8%4u0Q4x3X3c8V1k6i4k6W2L8r3!0H3L8h3g2F1N6q4)9J5c8R3`.`. )

最后,如果您想使用虚拟机管理程序进行调试、研究或逆向工程,您可以使用HyperDbg Debugger,因为该调试器中实现了许多基于虚拟机管理程序的创新方法,这将为您的逆向之旅提供帮助。

在这一部分中,我们研究了我们应该注意的一般关键字,并为我们将来的测试创建了一个简单的测试环境。 在下一部分中,我将解释如何使用我们上面制作的驱动程序在您的计算机上启用 VMX。 然后我们将调查虚拟化的其余部分,所以我们下一部分见。

[1] 英特尔® 64 和 IA-32 架构软件开发人员手册合并第 3 卷 ( 667K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6L8$3k6@1N6$3q4J5k6g2)9J5k6h3W2F1N6r3g2D9i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3X3c8#2M7#2)9J5c8X3q4J5N6r3W2U0L8r3g2K6i4K6u0r3K9h3&6@1k6h3I4Q4x3X3c8K6k6r3#2Q4x3X3t1`.)

[2] 硬件辅助虚拟化 ( cc9K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4K6i4K6u0W2j5$3#2#2i4K6u0W2k6h3c8#2i4K6u0r3i4K6N6q4y4o6p5J5i4K6u0r3L8r3g2U0N6s2g2J5k6i4y4Q4x3V1k6x3x3o6c8Q4y4h3k6h3g2s2S2Q4x3X3g2H3k6r3k6Q4x3X3t1`.)

[3] 编写 Windows 内核驱动程序 ( 6fbK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5k6i4y4G2N6i4u0U0k6i4y4Q4x3X3g2A6L8X3k6G2M7$3g2U0K9h3&6K6N6r3W2@1N6i4c8W2i4K6u0W2j5$3!0E0i4K6u0r3N6%4u0A6N6r3W2F1k6#2)9J5k6r3q4Q4x3X3c8%4K9h3&6V1L8%4N6K6i4K6u0V1K9$3g2J5L8X3g2D9i4K6u0V1k6s2u0A6N6X3g2J5i4K6u0r3i4K6u0T1)

[4] 什么是 1 类虚拟机管理程序? – ( b13K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4k6A6M7Y4c8#2j5h3I4A6P5X3q4@1K9h3!0F1M7$3!0X3N6s2N6S2M7X3g2Q4x3X3g2U0L8$3#2Q4x3V1k6@1P5i4m8W2i4K6u0V1x3g2)9J5k6r3S2&6M7r3g2J5N6X3W2K6L8%4u0K6i4K6u0r3i4K6u0T1)

[5] Intel / AMD CPU 内部结构 – ( bbfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6x3L8%4u0V1e0X3!0@1k6i4N6G2M7Y4c8Z5P5g2)9J5c8X3y4H3N6g2)9J5k6r3W2F1N6r3g2J5L8X3q4D9M7#2)9J5j5R3`.`.)

[6] Windows 10:禁用签名驱动程序强制执行 – ( 401K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3K9q4)9J5k6h3q4F1M7%4N6W2M7Y4y4Q4x3X3g2S2j5$3g2J5i4K6u0W2j5$3!0E0i4K6u0r3j5i4m8H3i4K6u0r3j5h3&6K6N6$3g2J5M7#2)9J5c8X3c8W2N6r3q4A6L8q4)9J5c8X3q4Q4y4h3k6A6k6q4)9J5c8U0x3^5x3U0R3^5i4K6u0r3i4K6N6q4i4K6u0r3N6$3W2F1k6r3!0%4M7#2)9J5k6o6p5H3i4K6t1#2x3@1q4Q4x3X3c8V1K9i4y4S2j5X3I4W2i4K6u0V1M7$3W2Y4L8X3g2V1i4K6u0V1k6s2u0A6N6X3g2J5i4K6u0V1k6h3&6X3L8%4u0U0k6h3#2W2L8Y4c8Q4x3X3t1`.)

[7] 指令集映射 » VMX 指令 – ( d9dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8%4u0S2j5$3I4W2i4K6u0W2j5$3!0E0i4K6u0r3j5$3c8Q4x3V1k6q4x3K6j5%4z5o6c8Q4y4h3j5H3x3g2)9J5c8X3S2@1L8h3I4Q4x3V1k6q4x3K6j5^5y4e0W2Q4x3V1k6Y4L8Y4c8T1P5q4)9J5k6h3S2@1L8h3I4Q4x3X3t1`.)

[8] HyperDbg 文档 – ( ad2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2K9s2W2H3k6i4u0V1j5X3N6Q4x3X3g2G2M7X3N6Q4x3X3t1`.)


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2024-3-31 17:16 被zhang_derek编辑 ,原因:
收藏
免费 9
支持
分享
最新回复 (6)
雪    币: 5049
活跃值: (7720)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
虚拟化yyds
2024-3-30 13:00
0
雪    币: 105
活跃值: (2903)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好文终于有人翻译了
2024-3-30 14:07
0
雪    币: 7251
活跃值: (9564)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
4

Hypervisor From Scratch虚拟化技术文章翻译
原文地址:b3fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5j5i4W2S2L8X3k6S2L8g2)9J5k6h3y4G2L8g2)9J5c8Y4c8#2N6r3!0J5K9h3q4D9M7#2)9J5c8R3`.`.

最后于 2024-3-31 18:47 被zhang_derek编辑 ,原因:
2024-3-31 18:46
0
雪    币: 5531
活跃值: (31866)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2024-3-31 21:29
1
雪    币: 223
活跃值: (1844)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
666
2024-4-11 16:09
0
雪    币: 225
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
谢谢楼主,学习了
2025-1-4 23:30
0
游客
登录 | 注册 方可回帖
返回