最近,这些复杂性引起了研究人员的注意,他们开始将调试基础设施更深入地整合到硬件中。因此,基于裸机[50、96、102]、虚拟化技术(VT-x)[26、31、53、97]、系统管理模式(SMM)[102]甚至英特尔内存管理引擎(MME)[30]的解决方案被用来尽量减少调试器存在时的信息泄露。这增加了调试器的透明度和隐蔽性。虽然这些较低层次的调试机制增加了透明度表面,但它们也会遭受严重的性能下降。尽管调试、监控和软件分析工具的子内核部署[103]可以为诸如分析逃避恶意软件等用例提供强大的平台,但以前提出的子内核调试器未能提供丰富的调试功能,因为它们要么已经停止更新[20, 31],要么是纯学术研究[31]或者没有经过充分开发和测试来处理真实世界应用程序和场景[103]。此外,在社区中仍然需要这些工具源代码可用。
在本文中,我们提出了HyperDbg,这是一个基于虚拟化技术(ring-1)的调试器,旨在利用现代硬件技术为逆向工程社区提供新功能。它在Windows上运行,并通过使用Intel VT-x对已经运行的系统进行虚拟化。HyperDbg 的主要目标是尽可能隐蔽和与操作系统无关。HyperDbg 避免使用任何操作系统API和软件调试机制,而是广泛使用处理器功能,如扩展页表(EPT),以监视内核和用户执行情况。