- windows/
- 如何正确使用WDK 8.1 Devfund\u IOAttack\u ERT\u模糊化windows驱动程序的基本测试
如何正确使用WDK 8.1 Devfund\u IOAttack\u ERT\u模糊化windows驱动程序的基本测试
如何正确使用WDK 8.1 Devfund\u IOAttack\u ERT\u模糊化windows驱动程序的基本测试,windows,driver,wdk,penetration-testing,fuzzing,Windows,Driver,Wdk,Penetration Testing,Fuzzing,我想使用模糊技术测试我的存储驱动程序,我选择了一个名为IoAttack的Microsoft工具,它在WDK 8.1中表示为测试用例,而不是像以前版本的WDK那样的独立应用程序。此工具与IoSpy工具配合使用,该工具收集发送到驱动程序的所有ioctl和WMI命令。IoSpy作为筛选器驱动程序附加到驱动程序堆栈并记录所有流量。问题发生在我成功附加IoSpy、记录所有数据,然后删除IoSpy并运行IoAttack之后。因为IoAttack看不到由存储驱动程序创建的设备,所以我无法模糊我的驱动程序。下面
我想使用模糊技术测试我的存储驱动程序,我选择了一个名为IoAttack的Microsoft工具,它在WDK 8.1中表示为测试用例,而不是像以前版本的WDK那样的独立应用程序。此工具与IoSpy工具配合使用,该工具收集发送到驱动程序的所有ioctl和WMI命令。IoSpy作为筛选器驱动程序附加到驱动程序堆栈并记录所有流量。问题发生在我成功附加IoSpy、记录所有数据,然后删除IoSpy并运行IoAttack之后。因为IoAttack看不到由存储驱动程序创建的设备,所以我无法模糊我的驱动程序。下面是我使用的步骤和配置
欢迎提供任何提示或解决方案:)
[测试机的设置步骤:
安装创建存储设备的驱动程序
安装程序包“WDK测试目标设置”
- 默认位置:C:\Program Files(x86)\Windows Kits\8.1\Remote\x64
- 已安装WDK 8.1组件的计算机上的默认位置
- 安装命令:msiexec/i“WDK测试目标设置x64-x64_en-us.msi”
2.1如果目标计算机正在运行Windows Server,请查找WDK测试目标安装程序MSI刚刚创建的DriverTest文件夹。(示例:c:\DriverTest)。在DriverTest文件夹上单击鼠标右键,然后选择“属性”。在“安全”选项卡上,为“已验证用户”组授予“修改”权限
安装包测试编写和执行框架(TAEF)”
- 默认位置:C:\Program Files(x86)\Windows Kits\8.1\Testing\Runtimes
- 已安装WDK 8.1组件的计算机上的默认位置
- 安装命令:msiexec/i“测试编写和执行框架x64-x64_en-us.msi”
安装程序包“WDTF运行时库”
- 默认位置:C:\Program Files(x86)\Windows Kits\8.1\Testing\Runtimes
- 已安装WDK 8.1组件的计算机上的默认位置
- 安装命令:msiexec/i“Windows驱动程序测试框架(WDTF)运行时库-x64_en-us.msi”
- 安装验证:
- 在测试计算机上打开命令提示窗口
- 运行%WDTFDir%\Tools\CheckWDTFInstall.cmd
- 默认位置:C:\Program Files(x86)\Windows Kits\8.1\Testing\Runtimes\WDTF
- 打开日志文件CheckWDTFInstall.log并检查包含所有已安装WDTF组件信息的结果
设置模式“内核调试”
- 步骤:
- 以管理员身份打开命令提示窗口。在上输入bcdedit/debug
- 如果计算机尚未配置为调试传输的目标,请输入bcdedit/dbgsettings local
- 重新启动计算机
[使用IoSpy和IoAttack的测试过程:
使用WDK测试“EnableIoSpy”和应用程序“TAEF”启用IoSpy
Te.exe“%SystemDrive%\Tests\Additional”
测试\DeviceFundamentals\ERT\Basic\Devfund\u IOSpy\u EnableSupport\u ERT\u Basic.wsc“
/选择:“@Name='Devfund::EnableIoSpy'”
/p:“DQ=INF::originalinfilename='my\u storage\u driver.INF'”
/p:“DFD=%systemdrive%\DriverTest\IoSpy”
/重新启动状态文件:%SystemDrive%\DriverTest\Logs\DriverTesterBoot.xml
/启用wttloging
/wttDeviceString:$LogFile:file=“%SystemDrive%\DriverTest\Logs\Enable_I_O_Spy_(快速)_(可能重新启动)00000.wtl”,writemode=append,encoding=unicode,nofscache=true,EnableLvl=“wexstartest | WexEndTest | WexXml | WexProperty | WexCreateContext | WexCloseContext |”
/符文:高架
重新启动操作系统
对公共和私有IOCTL使用IOCTL命令
验证记录通过IOCTL和WMI请求发送给启用模糊测试的设备的驱动程序的数据的IoSpy数据文件是否大于初始1 KB大小(如果不是特定驱动程序的数据获取失败)
- IoSpy数据文件的默认位置:%SystemDrive%\DriverTest\IoSpy
使用WDK测试“DisableIoSpy”和应用程序“TAEF”禁用IoSpy
te.exe“%SystemDrive%\Tests\Additional”
测试\DeviceFundamentals\ERT\Basic\Devfund\u IOSpy\u DisableSupport\u ERT\u Basic.wsc“
/选择:“@Name='Devfund::DisableIoSpy'”
/重新启动状态文件:%systemdrive%\DriverTest\Logs\DriverTesterBoot.xml
/启用wttloging
/wttDeviceString:$LogFile:file=“%systemdrive%\DriverTest\Logs\Disable_I_O_Spy_(快速)_(可能重新启动)00000.wtl”,writemode=append,encoding=unicode,nofscache=true,EnableLvl=“wexstartedtest | WexEndTest | WexXml | WexProperty | WexCreateContext | WexCloseContext |”
/符文:高架
重新启动操作系统
使用WDK测试“RUNIOATCH”和应用程序“TAEF”运行I/O攻击(快速)模糊器
te.exe“%SystemDrive%\DATA\Tests\Additional”
测试\DeviceFundamentals\ERT\Basic\Devfund\u IOAttack\u ERT\u Basic.wsc“
/选择:“@Name='Devfund::RunIoAttack'”
/p:“DQ=DeviceID='my\u device\u id''u是由我的存储驱动程序创建的'u'
/重新启动状态文件:%SystemDrive%\DriverTest\Logs\DriverTesterBoot.xml
/启用wttloging
/wttDeviceString:$LogFile:file=“%SystemDrive%\DriverTest\Logs\Run_I_O_Attack_(Quick)_00001.wtl”,writemode=append,encoding=unicode,nofscache=true,EnableLvl=“wexstartest | WexEndTest | WexXml | WexProperty | WexCreateContext | WexCloseContext |*”
/符文:高架
[问题:
作为测试从WDK运行的Microsoft fuzzer IoAttack没有看到my_storage_驱动程序。测试通过,因为没有找到要测试的设备。测试输出:
*
StartGroup:Devfund::RunIoAttack属性:TAEF:Description[运行I/O
攻击。]WDTF_目标:-查询(“IsDevice和IoSpy:”)WDTF_测试:否
找到用于测试端组的设备:Devfund::RunIoAttack[已通过]
摘要:总计=1,通过=1,失败=0,阻塞=0,未运行=0,