
Outil de rétro-ingénierie d'applications mobiles Flutter
Outil de rétro-ingénierie d'applications mobiles Flutter en compilant le runtime Dart AOT
Actuellement, l'application ne prend en charge que le fichier libapp.so d'Android (arm64 uniquement). De plus, l'application ne fonctionne actuellement qu'avec des versions récentes de Dart.
Pour les fonctionnalités manquantes prioritaires, voir TODO
Cette application utilise la bibliothèque de formatage C++20. Elle nécessite un compilateur C++ très récent tel que g++>=13, Clang>=16.
Je recommande d'utiliser un système d'exploitation Linux (testé uniquement sur Debian sid/trixie) car il est facile à configurer.
REMARQUE: Utilisez UNIQUEMENT une version Debian/Ubuntu qui fournit gcc>=13 depuis son propre dépôt principal. L'utilisation d'un gcc porté sur une ancienne version Debian/Ubuntu ne fonctionne pas.
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
Extraire le répertoire « lib » du fichier apk
python3 blutter.py chemin/vers/app/lib/arm64-v8a répertoire_sortie
Le script blutter.py détectera automatiquement la version de Dart depuis le moteur Flutter et appellera l'exécutable de blutter pour obtenir les informations de libapp.so.
Si l'exécutable blutter pour la version Dart requise n'existe pas, le script extraira automatiquement le code source de Dart et le compilera.
Vous pouvez utiliser git pull pour mettre à jour et exécuter blutter.py avec l'option --rebuild pour forcer la reconstruction de l'exécutable
python3 blutter.py chemin/vers/app/lib/arm64-v8a répertoire_sortie --rebuild
J'utilise Visual Studio pour développer Blutter sur Windows. L'option --vs-sln peut être utilisée pour générer une solution Visual Studio.
python blutter.py chemin\vers\lib\arm64-v8a build\vs --vs-sln