
Strumento di Reverse Engineering per Applicazioni Mobili Flutter
Strumento di Reverse Engineering per Applicazioni Flutter Mobile tramite Compilazione del Runtime Dart AOT
Attualmente l'applicazione supporta solo il file Android libapp.so (solo arm64). Inoltre, l'applicazione funziona al momento solo con versioni recenti di Dart.
Per le funzionalità mancanti ad alta priorità, vedi TODO
Questa applicazione utilizza la libreria di formattazione C++20. Richiede un compilatore C++ molto recente come g++>=13, Clang>=16.
Raccomando l'uso di un sistema operativo Linux (testato solo su Debian sid/trixie) perché è facile da configurare.
NOTA: Usa SOLO versioni di Debian/Ubuntu che forniscono gcc>=13 dal proprio repository principale. L'uso di gcc portato su versioni vecchie di Debian/Ubuntu non funziona.
apt install python3-pyelftools python3-requests git cmake ninja-build \
build-essential pkg-config libicu-dev libcapstone-dev
python scripts\init_env_win.py
brew install cmake ninja pkg-config icu4c capstone
pip3 install pyelftools requests
brew install llvm@16 cmake ninja pkg-config icu4c capstone
pip3 install pyelftools requests
Estrai la directory "lib" dal file apk
python3 blutter.py percorso/della/app/lib/arm64-v8a directory_output
blutter.py rileverà automaticamente la versione di Dart dal motore Flutter e chiamerà l'eseguibile di blutter per ottenere le informazioni da libapp.so.
Se l'eseguibile blutter per la versione Dart richiesta non esiste, lo script farà automaticamente il checkout del codice sorgente di Dart e lo compilerà.
Puoi usare git pull per aggiornare ed eseguire blutter.py con l'opzione --rebuild per forzare la ricostruzione dell'eseguibile
python3 blutter.py percorso/della/app/lib/arm64-v8a directory_output --rebuild
Uso Visual Studio per sviluppare Blutter su Windows. L'opzione --vs-sln può essere utilizzata per generare una soluzione Visual Studio.
python blutter.py percorso\della\lib\arm64-v8a build\vs --vs-sln