
Herramienta de Ingeniería Inversa para Aplicaciones Móviles Flutter
Herramienta de ingeniería inversa de aplicaciones móviles Flutter mediante la compilación del tiempo de ejecución AOT de Dart
Actualmente la aplicación solo soporta libapp.so de Android (solo arm64). Además, la aplicación actualmente solo funciona contra versiones recientes de Dart.
Para funcionalidades faltantes de alta prioridad, consulte TODO
Esta aplicación utiliza la biblioteca de formato C++20. Requiere un compilador C++ muy reciente como g++>=13, Clang>=16.
Recomiendo usar sistema operativo Linux (solo probado en Debian sid/trixie) porque es fácil de configurar.
NOTA: Use SOLO versiones de Debian/Ubuntu que proporcionen gcc>=13 desde su propio repositorio principal. Usar gcc adaptado a una versión antigua de Debian/Ubuntu no funciona.
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
Extraiga el directorio "lib" del archivo apk
python3 blutter.py ruta/a/app/lib/arm64-v8a directorio_salida
blutter.py detectará automáticamente la versión de Dart desde el motor de Flutter y llamará al ejecutable de blutter para obtener la información de libapp.so.
Si el ejecutable de blutter para la versión de Dart requerida no existe, el script creará automáticamente una copia del código fuente de Dart y lo compilará.
Puede usar git pull para actualizar y ejecutar blutter.py con la opción --rebuild para forzar la recompilación del ejecutable
python3 blutter.py ruta/a/app/lib/arm64-v8a directorio_salida --rebuild
Uso Visual Studio para desarrollar Blutter en Windows. La opción --vs-sln se puede usar para generar una solución de Visual Studio.
python blutter.py ruta\a\lib\arm64-v8a build\vs --vs-sln