
Driver Buddy Reloaded è un plugin Python per IDA Pro che aiuta ad automatizzare alcuni noiosi compiti di reverse engineering dei driver del kernel di Windows.

Il metodo di installazione dipende dalla tua versione di IDA, poiché il plugin manager integrato (e quindi lo strumento hcli e il manifest ida-plugin.json) esiste solo in IDA 9.0 e versioni successive. IDA 7.6 e 8.x non hanno un plugin manager e scansionano solo il livello superiore della cartella dei plugin.
hcli)Il repository include un manifest ida-plugin.json, quindi IDA 9.0+ carica il plugin dalla propria sottodirectory. Installalo con:```
hcli plugin install DriverBuddyReloaded
This drops the plugin into a subdirectory of your user plugins folder (e.g.
`%APPDATA%\Hex-Rays\IDA Pro\plugins\DriverBuddyReloaded\` or `~/.idapro/plugins/DriverBuddyReloaded/`), keeping the
`DriverBuddyReloaded.py` entry point *inside* that subdirectory. This is the intended layout: IDA reads the manifest,
loads the declared entry point from the subdirectory, and puts the subdirectory on `sys.path` so the entry point can
import the sibling `DriverBuddyReloaded` package. You do **not** need to move `DriverBuddyReloaded.py` to the top level.
Verifica l'installazione con `hcli plugin status`, quindi avvia IDA e conferma che il plugin appaia sotto
`Edit -> Plugins` (controlla la finestra Output per eventuali errori Python all'avvio).
Per installare da un checkout locale per test (ad esempio dopo tue modifiche), esegui `hcli plugin install .` dalla
radice del repository; `hcli plugin lint .` prima convalida il manifest/layout.
### IDA 7.6 / 8.x (copia manuale)
Queste versioni non hanno un plugin manager, quindi un plugin installato via `hcli` in una sottodirectory **non** verrà riconosciuto. Copia
la cartella `DriverBuddyReloaded` e il file script `DriverBuddyReloaded.py` direttamente nel **livello superiore** della
cartella dei plugin di IDA, per esempio:
- `%APPDATA%\Hex-Rays\IDA Pro\plugins\`
- `C:\Program Files\IDA Pro 8.4\plugins\`
- `~/.idapro/plugins/`
Il layout risultante sarà `plugins\DriverBuddyReloaded.py` insieme a `plugins\DriverBuddyReloaded\` (la cartella del pacchetto).
### Note
Se il tuo IDA è configurato per Python 2, esegui il binario `idapyswitch` (situato nella cartella di IDA) per passare a Python 3.
**NOTA:** Driver Buddy Reloaded funziona su IDA 7.6+, 8.x (inclusa 8.4) e 9.0+ con Python 3. Tutte le differenze
dell'API IDA specifiche per versione (la rimozione di `get_inf_structure`, il modulo `ida_struct` e gli helper `idc.*struc*` in
IDA 9.0, ecc.) sono gestite internamente dal layer di compatibilità `DriverBuddyReloaded/ida_compat.py`.
## Utilizzo Rapido
Per utilizzare la funzionalità di analisi automatica:
1. Avvia IDA e carica un driver kernel Windows.
2. Vai a `Edit -> Plugins -> Driver Buddy Reloaded` o premi `CTRL+ALT+A` per avviare l'analisi automatica.
3. Controlla la finestra "Output" per i risultati dell'analisi, e la finestra **Driver Buddy Reloaded - Findings** che si apre
al termine dell'esecuzione (doppio click su una riga per saltare al suo indirizzo).
4. I seguenti file vengono scritti nella directory DB di IDA (tutti con prefisso `<DRIVER_NAME>-YYYY-MM-DD-TIMESTAMP-`):
- `findings.json` - risultati in formato machine-readable (IOCTL, funzioni segnalate, nomi dispositivo, pooltag, catene di chiamate, euristiche, audit ACL dispositivo, collegamenti simbolici, audit esportazioni, opcode privilegiati)
- `report.html` - un report HTML autonomo raggruppato per gravità
- `pooltags.txt` - pooltag esportati in formato `pooltags.txt` per WinDbg
- `autoanalysis.txt` - il log completo dell'analisi testuale (rispecchia la finestra Output)
Per decodificare un IOCTL:
1. Posiziona il cursore del mouse sulla riga contenente un sospetto codice IOCTL.
2. Clicca con il tasto destro e seleziona `Driver Buddy Reloaded -> Decode IOCTL`; in alternativa premi la scorciatoia `CTRL+ALT+D`.
Per riaprire la finestra degli IOCTL o la finestra dei risultati in qualsiasi momento (senza rieseguire l'analisi):
- Premi `CTRL+ALT+I` per aprire la finestra degli IOCTL.
- Premi `CTRL+ALT+F` per aprire la finestra dei risultati.
### Utilizzo Avanzato
- La directory [vulnerable_function_lists](https://github.com/voidsec/driverbuddyreloaded/blob/main/DriverBuddyReloaded/vulnerable_functions_lists) contiene elenchi di funzioni
potenzialmente pericolose/problematiche, API Windows e opcode; viene fornita una breve descrizione del motivo per cui una specifica funzione/API è stata inclusa.
Puoi modificare l'elenco `custom` includendo funzioni specifiche del driver.
**Nota**: `winapi_function_prefixes` farà corrispondere parzialmente l'inizio del nome della funzione (ad es. `Zw` corrisponderà a `ZwClose`, `ZwCommitComplete` e così via) mentre `winapi_functions` eseguirà solo corrispondenze esatte.
- In [find_opcodes.py](https://github.com/voidsec/driverbuddyreloaded/blob/main/DriverBuddyReloaded/find_opcodes.py), l'opzione `find_opcode_data` (default `False`)
sopprime le corrispondenze di opcode che cadono in sezioni dati
([issue #11](https://github.com/VoidSec/DriverBuddyReloaded/issues/11)). Impostandola a `True` si mostrano anche
le corrispondenze brute di byte nei dati; se un opcode reale è stato perso in questo modo, andare all'indirizzo segnalato e ridefinire
i byte come codice solitamente lo recupera. Le corrispondenze vengono segnalate come in ogni altra fase (finestra risultati,
`findings.json`, `report.html`).
**Attenzione**: impostarlo a `True` genera più falsi positivi!
## Informazioni su Driver Buddy Reloaded
**Driver Buddy Reloaded** è un plugin Python per IDA Pro che aiuta ad automatizzare alcune noiose attività di reverse engineering
dei driver del kernel Windows. Dispone di numerose funzionalità utili, tra cui: