
DriverBuddy is an IDA Python script to assist with the reverse engineering of Windows kernel drivers.
DriverBuddy è un plugin IDAPython che aiuta ad automatizzare parte della tediosità del reverse engineering dei driver kernel Windows. Ha una serie di funzionalità utili, come:
Essere in grado di individuare e identificare automaticamente la funzione DispatchDeviceControl è un'attività che fa risparmiare tempo durante il reverse engineering dei driver. Questa funzione viene utilizzata per instradare tutti i codici DeviceIoControl in ingresso alla specifica funzione del driver associata a quel codice. Identificare automaticamente questa funzione rende molto più rapida l'individuazione dei codici DeviceIoControl validi per ciascun driver. Inoltre, quando si indagano possibili vulnerabilità in un driver a causa di un crash, conoscere la posizione di questa funzione aiuta a restringere il campo alla specifica chiamata di funzione associata al codice DeviceIoControl che ha causato il crash.
Diverse strutture dei driver sono condivise tra tutti i driver WDM. Essere in grado di identificare automaticamente queste strutture, come IO_STACK_LOCATION, IRP e DeviceObject, può aiutare a risparmiare tempo durante il processo di reverse engineering. DriverBuddy tenta di individuare e identificare molte di queste struct.
Come per i driver WDM, esistono diverse funzioni e strutture condivise tra tutti i driver WDF. Identificare automaticamente queste funzioni e strutture farà risparmiare tempo durante il processo di reverse engineering e fornirà contesto alle aree non identificate del driver in cui queste funzioni sono in uso.
Durante il reverse engineering dei driver, è comune imbattersi in codici IOCTL come parte dell'analisi. Questi codici, una volta decodificati, rivelano informazioni utili ai reverse engineer e possono attirare l'attenzione su specifiche parti del driver dove è più probabile che esistano vulnerabilità.
Obiettivi ambiziosi:
Questo software è rilasciato sotto la licenza MIT, vedi LICENSE.