我编写这个工具是为了学习 C++,并对 Windows 系统上安装的驱动程序进行初步评估(例如 OEM 或企业开发的主映像)。它旨在帮助进行目标选择、发现容易利用的漏洞,并为深度二进制分析提供一些辅助。目前不稳定,正在积极开发中。
我曾结合使用 DeviceTree、WinObjEx64 和 WinDbg 来完成这些任务。这是一个繁琐的手动过程,难以扩展,所以 DIRT 只是试图让它更方便。
该工具应使用 Visual Studio 2015 或更高版本编译。
bcdedit -debug on 启用调试模式。kldbgdrv.sys(WinDbg 附带)放在与 DIRT.exe 相同的目录中。DIRT.exe > output.txt。可以使用 --lp-only 和 --no-msft 开关来过滤结果。
以下是预期输出的示例:
DIRT v0.1.0: Driver Initial Reconnaisance Tool (@Jackson_T)
Repository: https://github.com/jthuraisamy/DIRT
Compiled on: Aug 22 2018 00:01:04
INFO: Hiding Microsoft drivers (--no-msft).
INFO: Only showing drivers that low-privileged users can interface with (--lp-only).
Capcom: Capcom
Path: C:\Windows\System32\Capcom.sys
DispatchDeviceControl: 0xFFFFF8024C9A0590
Devices: 1
└── \Device\Htsysm72FB (open DACL, 1 symlinks)
└── \\.\Global\Htsysm72FB
SmbDrvI: SmbDrvI (Synaptics Incorporated)
Path: C:\WINDOWS\System32\drivers\Smb_driver_Intel.sys - Hooked by Wdf01000 (Microsoft Corporation)
DispatchDeviceControl: 0xFFFFF808212C72B0
Devices: 1
└── \Device\SmbDriver (open DACL, 1 symlinks)
└── \\.\Global\SmbDriver
nvlddmkm: nvlddmkm
Path: C:\Windows\System32\DriverStore\FileRepository\nvlt.inf_amd64_ed3ba3fb30d4dd86\nvlddmkm.sys
DispatchDeviceControl: 0xFFFFF80822D074D0
Devices: 2
├── \Device\NvAdminDevice (open DACL, 1 symlinks)
│ └── \\.\Global\NvAdminDevice
└── \Device\UVMLiteController0x1 (open DACL, 1 symlinks)
└── \\.\Global\UVMLiteController
还可以通过 DIRT::Main::ExportCSV() 获取 CSV 输出:

Jackson Thuraisamy(2018)。该代码大量衍生自 @hFireF0X 的 WinObjEx64 项目。
MIT