
iLEAPP v2026.3.3
Analizza le estrazioni forensi di iOS e iPadOS in report HTML, TSV, timeline, KML e LAVA con scoperta modulare degli artefatti e supporto per i backup iTunes crittografati.

Parser di log, eventi e plist di iOS
iLEAPP analizza estrazioni forensi di iOS e iPadOS e produce output in formato HTML, TSV, timeline, KML e LAVA. Supporta le versioni di iOS/iPadOS dalla 11 fino a quelle attuali.
Consulta l'elenco completo e ricercabile degli artefatti su leapps.org/artifacts (filtra per strumento LEAPP).
Avvio rapido (consigliato)
Scarica una release precompilata — non è richiesta l'installazione di Python.
- LEAPPs Releases — sfoglia tutti gli strumenti della famiglia LEAPP
- iLEAPP GitHub Releases — download diretti
| Piattaforma | GUI | CLI |
|---|---|---|
| Windows (Intel) | ileappGUI-v*-Windows_x86_64.zip | ileapp-v*-Windows_x86_64.zip |
| Windows (ARM) | ileappGUI-v*-Windows_arm64.zip | ileapp-v*-Windows_arm64.zip |
| macOS (Apple Silicon) | ileappGUI-v*-macOS_Apple_Silicon.dmg | ileapp-v*-macOS_Apple_Silicon.zip |
| macOS (Intel) | ileappGUI-v*-macOS_Mac_Intel.dmg | ileapp-v*-macOS_Mac_Intel.zip |
| Linux (Intel) | ileappGUI-v*-Linux_x86_64.AppImage | ileapp-v*-Linux_x86_64.AppImage |
| Linux (ARM) | ileappGUI-v*-Linux_arm64.AppImage | ileapp-v*-Linux_arm64.AppImage |
GUI — estrai il download, avvia ileappGUI, quindi seleziona il tipo di input, il percorso di origine, la cartella di output e i moduli da elaborare.
CLI — estrai il download ed esegui da un terminale. La cartella di output deve già esistere.
ileapp.exe -t zip -i C:\path\to\extraction.zip -o C:\path\to\output\
Su macOS e Linux, usa il binario ileapp dall'archivio estratto invece di ileapp.exe.
Tipi di input
| Tipo | Descrizione |
|---|---|
fs | Cartella di file estratti con percorsi e nomi normali |
zip | Archivio ZIP contenente file con nomi normali |
tar | Archivio TAR, semplice o compresso con xz (.tar.xz) |
gz | Archivio compresso con GZIP |
itunes | Cartella di backup iTunes/Finder con percorsi e nomi con hash |
file | Input di un singolo file |
I backup iTunes/Finder cifrati (-t itunes) sono supportati. La GUI richiederà una password prima dell'elaborazione quando viene rilevata la cifratura. Da CLI, passa la password con --itunes_password (vedi Opzioni di parsing opzionali di seguito).
Argomenti CLI
Queste opzioni si applicano solo alla build CLI (ileapp / ileapp.exe / python ileapp.py). La GUI (ileappGUI) espone le stesse impostazioni tramite la sua interfaccia invece che con flag da riga di comando.
Esegui ileapp --help (o python ileapp.py --help dai sorgenti) per il riferimento integrato.
Parsing di un caso
Questi tre argomenti sono obbligatori per una normale esecuzione di parsing:
| Argomento | Forma estesa | Descrizione |
|---|---|---|
-t | Tipo di input: fs, tar, zip, gz, itunes o file | |
-i | --input_path | Percorso del file o della cartella di input |
-o | --output_path | Percorso della cartella di output (deve già esistere) |
Esempio:
ileapp -t zip -i /path/to/extraction.zip -o /path/to/output/
Opzioni di parsing opzionali
| Argomento | Forma estesa | Descrizione |
|---|---|---|
-w | --wrap_text | Passa questo flag per disabilitare il ritorno a capo automatico nei file di output |
-m | --load_profile | Percorso di un file di profilo iLEAPP (.ilprofile) per limitare i moduli eseguiti |
-d | --load_case_data | Percorso di un file di dati di caso LEAPP (.lcasedata) |
--custom_output_folder | Nome personalizzato per la sottocartella di output del report | |
--custom_artifacts_path | Cartella aggiuntiva da cui caricare i moduli degli artefatti (es. scripts/alternate_artifacts) | |
--html_row_limit | Numero di righe oltre il quale la tabella di un artefatto viene omessa dalla sua pagina HTML, che punta invece al database LAVA e all'esportazione TSV. Predefinito 50000; 0 scrive tutte le tabelle. La GUI usa il valore predefinito | |
--itunes_password |
Modalità di utilità standalone
Queste modalità non eseguono il parsing di un caso. Usale da sole — senza -t, -i o -o:
| Argomento | Forma estesa | Descrizione |
|---|---|---|
-p | --artifact_paths | Scrive tutti i percorsi di ricerca degli artefatti in path_list.txt nella directory corrente |
-c | --create_profile_casedata | Procedura guidata interattiva per creare un file .ilprofile o .lcasedata nella cartella indicata |
Esempi:
ileapp -p
ileapp -c /path/to/output/folder/
Contribuire
I moduli degli artefatti si trovano in scripts/artifacts/ e vengono caricati dinamicamente a runtime.
Nuovi moduli: inizia con la guida passo passo su How to Write an iLEAPP Module.
Riferimenti aggiuntivi:
- Artifact Info Block Structure
- Updating Modules for Automatic Output Generation
- Updating Complex Modules to Include LAVA Output
- Testing Modules
Dati di test e sample_data per la tua PR
Una PR che aggiunge o modifica un artefatto è più facile da revisionare e unire quando arriva con
due cose: un piccolo fixture di test ricavato da un'estrazione reale e valori sample_data che
registrano ciò che il modulo ha prodotto. Gli script generano entrambi. Ecco l'intero flusso.
Una regola prima di tutto: qualunque cosa tu commetta qui diventa pubblica. Usa solo dati che sei autorizzato a condividere, come un dispositivo di test popolato da te, un'immagine di ricerca pubblica o un file che hai sanificato manualmente. Mai dati di casi reali.
1. Ricava un fixture dalla tua estrazione
python admin/test/scripts/make_test_data.py <module> --case 1 --input <extraction.zip>
Questo estrae dall'estrazione i file che corrispondono ai pattern paths del tuo modulo e scrive
il file di caso admin/test/cases/testdata.<module>.json più un piccolo zip per artefatto
sotto admin/test/cases/data/<module>/.
Regole sulle dimensioni: sotto i 10 MB per zip, committalo con la PR. Tra 10 e 25 MB, committa il file di caso e allega lo zip a un commento della PR. Più grande di così, dillo nella PR e un maintainer organizzerà un passaggio di consegne.
2. Registra l'output atteso
TZ=UTC python admin/test/scripts/test_module.py <module> -a all -c all
Questo esegue il modulo sul fixture e scrive uno snapshot dell'output sotto
admin/test/results/<module>/. Committa anche lo snapshot. Diventa la baseline che
protegge il modulo dopo il merge. Mantieni la parte TZ=UTC: gli snapshot committati sono in UTC
e la CI viene eseguita in UTC.
3. Esegui lo stesso confronto che eseguirà la CI
python admin/test/scripts/run_test_cases.py --module <module>
4. Genera i valori sample_data
python admin/scripts/validate_sample_data.py --emit <extraction.zip> --key <image_name>