Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ida-efiutils — Alcuni script per IDA Pro per assistere nel reverse engineering di binari EFI | Kitploit
Strumenti/GitHubGitHub/snare/ida-efiutils
Sicurezza Sistemi EmbeddedReverse EngineeringSicurezza Hardware e IoTAnalisi di BinariAnalisi del Firmware
GitHubsnare/ida-efiutils

ida-efiutils

Alcuni script per IDA Pro per assistere nel reverse engineering di binari EFI

Vedi Repository
309667 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Script EFI per IDA Pro

Alcuni script IDA per assistere nel reverse engineering di eseguibili EFI.

Questo pacchetto contiene i seguenti file:

  1. efiutils.py - Modulo IDAPython con alcune funzioni di supporto

  2. efiguids.py - Una raccolta di GUID noti per i protocolli EFI

  3. efiguids_ami.py - Una raccolta di GUID noti per i protocolli utilizzati nel BIOS AMI

  4. behemoth.h - Un header di grandi dimensioni contenente una raccolta di definizioni di tipi e strutture per EFI

  5. structs.idc - Uno script IDC contenente alcune definizioni di strutture (sostituito da behemoth.h)

  6. te_image.bt - Un template di 010 Editor per immagini binarie TE

  7. te_loader.py - Uno script loader IDA Pro per immagini binarie TE

Questo è il mio primo tentativo di scripting IDA, quindi per favore perdonatemi e fatemi sapere se ho reinventato la ruota o fatto qualcosa di sciocco.

Funzioni

Le principali funzioni utili sono descritte di seguito. Consulta il codice e le docstring per maggiori informazioni sulle altre funzioni.

rename_tables()

Trova il primo punto di ingresso del binario, tenta di tracciare i parametri passati alla funzione di entry point e rinomina le variabili globali in cui sono memorizzate le tabelle EFI chiave. Vengono eseguite le seguenti operazioni di rinomina:

  1. La globale in cui finisce ImageHandle viene rinominata in gImageHandle.

  2. La globale in cui finisce SystemTable viene rinominata in gSystemTable.

  3. La globale in cui finisce SystemTable->BootServices viene rinominata in gBootServices.

  4. La globale in cui finisce SystemTable->RuntimeServices viene rinominata in gRuntimeServices.

Le istruzioni di chiamata verranno seguite solo fino a un livello di profondità, poiché la maggior parte degli eseguibili copia i riferimenti alle tabelle nel punto di ingresso o in una funzione chiamata dal punto di ingresso. Modifica MAX_STACK_DEPTH se necessario.

update_structs()

Trova i cross-reference alle tabelle rinominate sopra e aggiorna i loro nomi in offset di struttura dalle strutture appropriate. Se rename_tables() fallisce, dovrai rinominare le cose manualmente come sopra affinché questo funzioni correttamente.

Ad esempio:

root@kitploit:~
    mov     rax, cs:qword_whatever
    call    qword ptr [rax+150h]

Diventa:

root@kitploit:~
    mov     rax, cs:gBootServices
    call    [rax+EFI_BOOT_SERVICES.UninstallMultipleProtocolInterfaces]

rename_guids()

Trova i GUID nei segmenti dati e li rinomina. 470 GUID di protocollo sono stati estratti dal sorgente TianoCore, e i GUID proprietari Apple (e di altri vendor) verranno aggiunti man mano che vengono incontrati.

go()

Metodo di comodo che esegue tutto quanto sopra.

Utilizzo

  1. Carica il tuo binario EFI in IDA Pro

  2. Importa behemoth.h per definire le strutture dati necessarie

  3. Aggiungi le strutture dai tipi locali al tuo IDB

  4. Esegui efiutils.py per aggiungerlo al path di python (oppure fallo con un altro metodo)

  5. Dai un'occhiata al codice/docstring, ma probabilmente:

    root@kitploit:~
     import efiutils; efiutils.go()
    

Per utilizzare il loader di immagini TE te_loader.py, installalo come faresti con qualsiasi altro loader. Su OS X questo si fa copiandolo o creando un symlink nella cartella loaders in idaq.app/Contents/MacOS/loaders/.

Scarica lo strumento