模糊测试虚拟驱动程序工具



我正在寻找模糊虚拟驱动程序,我已经阅读了有关此的其他问题,但它们并没有真正消失。基本上是想看看是否有一个明显的工具我错过了,并想知道来自 Windows 来宾的模糊 IOCTL 是否有效?或者如果我需要写一个低级的,例如 IN/OUT?

任何用于模糊测试Windows来宾中的驱动程序以访问hyper-v或VMware

的工具
有许多

方法可以执行虚拟化代码。

首先,当然,如果你在Windows上,是IOCTL界面。

然后,您应该记住,所有虚拟设备都以某种方式由来宾操作系统和主机操作系统中的某些代码模拟。因此,访问输入设备(键盘和鼠标(、视频设备、存储(磁盘(、网卡、通信端口(串行、并行(、标准 PC 设备(PIC、PIT、RTC、DMA(、CPU APIC 等也将执行虚拟化代码。

同样重要的是要记住,各种PC设备的虚拟化(除非我们谈论的是Windows中通过VMBUS工作的合成设备(是通过拦截,解析和模拟/执行访问设备内存映射缓冲区和寄存器和I/O端口的指令来完成的。这为您提供了另一个"界面"。

通过使用它,您不仅可以发现与设备相关的错误,还可以发现与指令相关的错误。如果您对后者感兴趣,则需要很好地了解 x86 CPU 如何在各种模式(真实、虚拟 8086、受保护、64 位(的指令级别工作,它如何处理中断和异常,您还需要知道如何访问这些 PC 设备(如何以及在哪些内存地址和 I/O 端口号(。

顺便说一句,Windows不会让你直接访问这些东西,除非你的代码在内核中运行。你可能希望有一个非 Windows 来宾 VM 来处理此类操作,以避免 Windows 的过度保护功能。查找边缘情况、异常指令编码(包括无效编码(或用于常规任务的异常指令(例如使用 FPU/MMX/SSE/等或特殊保护模式指令(如 SIDT(访问设备(。思考和调皮。

要考虑的另一件事是争用条件和计算或 I/O 负载。你可能也有一些运气朝这个方向探索。

最新更新