
Reverse-Engineering-Tool für Flutter-Mobile-Anwendungen
Flutter Mobile Application Reverse Engineering Tool durch Kompilieren der Dart AOT Runtime
Derzeit unterstützt die Anwendung nur Android libapp.so (nur arm64). Außerdem funktioniert die Anwendung derzeit nur mit neueren Dart-Versionen.
Für fehlende Funktionen mit hoher Priorität siehe TODO
Diese Anwendung verwendet die C++20-Formatierungsbibliothek. Sie benötigt einen sehr aktuellen C++-Compiler wie g++>=13, Clang>=16.
Ich empfehle die Verwendung von Linux OS (nur auf Debian sid/trixie getestet), da die Einrichtung einfach ist.
HINWEIS: Verwenden Sie NUR eine Debian/Ubuntu-Version, die gcc>=13 aus dem eigenen Haupt-Repository bereitstellt. Die Verwendung eines portierten gcc auf einer alten Debian/Ubuntu-Version funktioniert nicht.
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
Extrahieren Sie das "lib"-Verzeichnis aus der APK-Datei
python3 blutter.py path/to/app/lib/arm64-v8a out_dir
Die blutter.py erkennt automatisch die Dart-Version aus der Flutter-Engine und ruft die ausführbare Datei von Blutter auf, um die Informationen aus libapp.so zu erhalten.
Wenn die ausführbare Datei von Blutter für die erforderliche Dart-Version nicht vorhanden ist, checkt das Skript automatisch den Dart-Quellcode aus und kompiliert ihn.
Sie können git pull verwenden, um zu aktualisieren, und blutter.py mit der Option --rebuild ausführen, um die ausführbare Datei neu zu erstellen
python3 blutter.py path/to/app/lib/arm64-v8a out_dir --rebuild
Ich verwende Visual Studio, um Blutter unter Windows zu entwickeln. Die Option --vs-sln kann verwendet werden, um eine Visual Studio-Projektmappe zu generieren.
python blutter.py path\to\lib\arm64-v8a build\vs --vs-sln