首页
/ 探索AMD处理器上的高级监控利器:SimpleSvmHook

探索AMD处理器上的高级监控利器:SimpleSvmHook

2024-05-21 15:34:47作者:宣利权Counsellor
SimpleSvmHook
SimpleSvmHook is a research purpose hypervisor for Windows on AMD processors.

项目介绍

.SimpleSvmHook是一个专为Windows系统和AMD处理器设计的研究型虚拟机监控器(hypervisor)。它巧妙地利用了AMD虚拟化(AMD-V)技术中的Nested Page Tables(NPT),实现对内核模式函数的钩取并保护其免受检测。作为一个示例性项目,SimpleSvmHook展示了在AMD平台上如何进行虚拟机 introspection(VMI)以及与Intel处理器上类似方案的不同之处。

如果你对DdiMon有所了解,那么SimpleSvmHook可以看作是AMD平台上的功能等价实现,尽管有一些独特之处。

项目技术分析

隐形钩子的实现

隐形钩子是不被外部观察到的钩子,特别是在虚拟机监控场景中,能够引导执行指定地址而不易被目标系统发现。SimpleSvmHook通过使用NPT来区分内存的读写和执行视图。然而,与Intel的Extended Page Table(EPT)不同,AMD的NPT不支持只执行权限,这就要求SimpleSvmHook采取不同的策略来隐藏钩子。

在AMD平台上,SimpleSvmHook需将可读写页面作为默认映射,并在需要时切换到含有陷阱指令的复制页。由于缺少执行仅权限,钩子在某些情况下会变得可见。为了避免这个问题,项目采用了一种权衡策略,即当执行离开挂钩页时,监视器会捕获异常,重新设置页面权限以恢复隐藏状态,但这也带来了更高的性能开销。

项目及技术应用场景

SimpleSvmHook主要适用于以下场景:

  1. 研究与教学:对于想深入理解虚拟机监控技术的学者或学生,这是一个非常有价值的实验平台。
  2. 系统安全:可以用于监测系统内核API调用,提升系统的安全性和审计能力。
  3. 软件调试:在不影响正常运行的情况下,实时跟踪和分析特定内核代码的行为。

项目特点

  1. AMD技术支持:专注于AMD处理器的VMI实现,填补了这一领域的空白。
  2. 隐形钩子:即使在没有执行仅权限的限制下,也能实现一定程度的隐形。
  3. 复杂情况处理:应对 Guests 执行同一页面中的钩子代码,提供了部分解决方案,虽然有局限性。
  4. 性能优化挑战:考虑到频繁的VM-exit操作,项目面临一定的性能损失问题。

安装与卸载

构建并安装SimpleSvmHook,你需要首先从GitHub克隆源代码,然后使用Visual Studio进行编译。为了安装驱动程序,还需要启用测试签名。通过管理员权限的命令提示符执行以下命令,然后重启系统:

>bcdedit /set testsigning on

使用sc命令进行驱动程序的安装和卸载:

>sc create SimpleSvmHook type= kernel

总体而言,SimpleSvmHook为AMD处理器提供了一种创新的VMI方式,虽然存在一些技术和性能上的挑战,但它在学术研究和实际应用中都展现出了独特的价值。无论你是开发者、研究人员还是安全专家,这个项目都值得你进一步探索和使用。

SimpleSvmHook
SimpleSvmHook is a research purpose hypervisor for Windows on AMD processors.
热门项目推荐
相关项目推荐

项目优选

收起
CangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
672
0
openHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
12
8
advanced-java
Advanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。
JavaScript
75.83 K
19.04 K
redis-sdk
仓颉语言实现的Redis客户端SDK。已适配仓颉0.53.4 Beta版本。接口设计兼容jedis接口语义,支持RESP2和RESP3协议,支持发布订阅模式,支持哨兵模式和集群模式。
Cangjie
323
26
RuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
136
18
Yi-Coder
Yi Coder 编程模型,小而强大的编程助手
HTML
31
5
easy-es
Elasticsearch 国内Top1 elasticsearch搜索引擎框架es ORM框架,索引全自动智能托管,如丝般顺滑,与Mybatis-plus一致的API,屏蔽语言差异,开发者只需要会MySQL语法即可完成对Es的相关操作,零额外学习成本.底层采用RestHighLevelClient,兼具低码,易用,易拓展等特性,支持es独有的高亮,权重,分词,Geo,嵌套,父子类型等功能...
Java
1.42 K
231
xzs
在线考试系统、考试系统、在线教育考试系统、在线教育、跨平台考试、考试、智能考试、试题、错误试题、考试题目、试题组卷等
HTML
3
1
langgpt
Ai 结构化提示词,人人都能写出高质量提示词,GitHub 开源社区全球趋势热榜前十项目,已被百度、智谱、字节、华为等国内主流大模型智能体平台使用,内容来自国内最具影响力的高质量提示词工程师学习交流社群——LangGPT。开源知识库:https://langgptai.feishu.cn/wiki/RXdbwRyASiShtDky381ciwFEnpe
Jupyter Notebook
16
2