IoSpy 和 IoAttack

注意

Windows 10版本 1703 之后,IoSpy 和 IoAttack 在 WDK 中不再可用。

作为这些工具的替代方法,请考虑使用 HLK 中提供的模糊测试。 下面是一些需要考虑的事项。

DF - 模糊随机 IOCTL 测试(可靠性)

DF - 模糊 sub-open 测试(可靠性)

DF - 模糊零长度缓冲区 FSCTL 测试(可靠性)

DF - 模糊随机 FSCTL 测试(可靠性)

DF - 模糊杂项 API 测试(可靠性)

还可以使用驱动程序验证程序随附的 内核同步延迟模糊

IoSpy 和 IoAttack 是在内核模式驱动程序上执行 IOCTL 和 WMI 模糊测试的工具。 通过使用这些工具,可以确保驱动程序的 IOCTL 和 WMI 代码正确验证数据缓冲区和缓冲区长度。 通过执行此操作,可以避免可能导致系统不稳定的缓冲区溢出。

模糊测试 为驱动程序提供随机数据(称为 模糊),以确定驱动程序中的缺陷。 通过 IOCTL 或 WMI 接口进行模糊测试并不新奇。 但是,大多数测试套件要么是泛型 黑盒 模糊测试,它们仅验证对驱动程序的 IOCTL 或 WMI 接口的外部访问,要么编写这些测试套件来测试驱动程序中的特定 IOCTL 和 WMI 路径。

IoSpy 和 IoAttack 使用更多 白盒 方法来模糊测试。 为设备启用模糊测试后,IoSpy 会捕获发送到设备驱动程序的 IOCTL 和 WMI 请求,并在数据文件中记录这些请求的属性。 然后,IoAttack 从此数据文件中读取属性,并使用这些属性以各种方式 模糊或随机更改 IOCTL 或 WMI 请求,然后再将它们发送到驱动程序。 这允许进一步进入驱动程序的缓冲区验证代码,而无需编写特定于 IOCTL 或 WMI 的测试。

运行 Windows Vista 或更高版本 Windows 操作系统的系统上支持 IoSpy 和 IoAttack。 这些工具作为 设备基础测试的一部分包含在 WDK 中,请参阅 渗透测试 (设备基础知识) 。 可以从“基本”\“设备基础”\“渗透”\IoSpy & Attack 文件夹下的“ 添加或删除驱动程序测试 ”对话框中选择这些测试。

重要 IoSpy 和 IoAttack 应在以前为内核模式调试准备的测试系统上运行。

本节包括下列主题:

IoSpy

IoAttack

如何使用 IoSpy 和 IoAttack 执行模糊测试