
Sfide pratiche per imparare a fare reverse engineering di applicazioni Flutter.
Questo repository contiene una serie di sfide progressive pensate per introdurre il reverse engineering delle applicazioni Flutter. Poiché non ci sono molti post di blog o tutorial che spiegano il reversing di Flutter in dettaglio, ho deciso di creare questo repo come un modo pratico per colmare questa lacuna.
L'obiettivo è costruire una solida base per comprendere le caratteristiche uniche del framework Flutter e le tecniche di analisi comunemente utilizzate con esso.
Le sfide sono strutturate in modo incrementale, partendo da concetti fondamentali e avanzando verso tecniche intermedie e più avanzate come l'intercettazione del traffico di rete e il bypass delle protezioni.
Invece di un tradizionale writeup, ogni sfida include una soluzione dettagliata in stile post di blog che ti guida passo dopo passo nel processo di reversing, combinando problem-solving pratico con teoria pertinente in modo che i concetti vengano appresi direttamente attraverso la pratica.
Se pensi di non avere tutti i prerequisiti, le seguenti risorse sono altamente consigliate:
Ogni directory delle sfide include:
chall<X>.apk: l'APK compilato per la sfida;solution/_images/: immagini a cui si fa riferimento nella soluzione;solution/solution.md: una soluzione dettagliata passo dopo passo;source/: i file sorgente dell'applicazione e le istruzioni di build, per chi vuole modificare l'app e sperimentare ulteriormente;$ tree
.
├── chall<X>.apk
├── solution
│ ├── _images
│ │ ├── chall<X_Y>.png
│ └── solution.md
└── src
├── how_to_build.md
└── main.dart
Alcuni di questi strumenti richiedono configurazioni specifiche. Per semplificare la configurazione e garantire la riproducibilità, per alcuni di questi strumenti sono forniti Dockerfile che si trovano nella directory /tools.
Strumenti:
apktool - Strumento per decompilare e ricostruire APK (link)Blutter - Decompilatore per applicazioni Flutter (link, Dockerfile incluso in questo repository)Frida - Toolkit di strumentazione dinamica (link)jadx - Decompilatore Android (link)reFlutter - Framework per il reverse engineering di Flutter (link)Burp Suite - Proxy per l'intercettazione del traffico (link)Questo progetto è distribuito sotto la licenza MIT. Vedi il file LICENSE per maggiori dettagli.
Questo repository è creato esclusivamente per scopi educativi. Le tecniche descritte dovrebbero essere utilizzate solo su applicazioni per le quali hai il diritto di analizzare o in ambienti di test controllati. L'autore non si assume alcuna responsabilità per l'uso improprio delle informazioni contenute in questo repository.