
저는 이 도구를 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