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

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

2024-05-21 15:34:47作者:宣利权Counsellor

项目介绍

.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方式,虽然存在一些技术和性能上的挑战,但它在学术研究和实际应用中都展现出了独特的价值。无论你是开发者、研究人员还是安全专家,这个项目都值得你进一步探索和使用。

热门项目推荐
相关项目推荐

项目优选

收起
Python-100-DaysPython-100-Days
Python - 100天从新手到大师
Python
611
115
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
286
79
mdmd
✍ WeChat Markdown Editor | 一款高度简洁的微信 Markdown 编辑器:支持 Markdown 语法、色盘取色、多图上传、一键下载文档、自定义 CSS 样式、一键重置等特性
Vue
112
25
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
60
48
RuoYi-Cloud-Vue3RuoYi-Cloud-Vue3
🎉 基于Spring Boot、Spring Cloud & Alibaba、Vue3 & Vite、Element Plus的分布式前后端分离微服务架构权限管理系统
Vue
45
29
go-stockgo-stock
🦄🦄🦄AI赋能股票分析:自选股行情获取,成本盈亏展示,涨跌报警推送,市场整体/个股情绪分析,K线技术指标分析等。数据全部保留在本地。支持DeepSeek,OpenAI, Ollama,LMStudio,AnythingLLM,硅基流动,火山方舟,阿里云百炼等平台或模型。
Go
1
0
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
205
57
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
383
36
RuoYi-VueRuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
182
44
frogfrog
这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体。
Java
8
0