
Ferramenta de Engenharia Reversa de Aplicativos Móveis Flutter
Ferramenta de Engenharia Reversa de Aplicativos Flutter Mobile compilando o Runtime AOT do Dart
Atualmente, o aplicativo suporta apenas o libapp.so do Android (somente arm64). Além disso, o aplicativo atualmente funciona apenas com versões recentes do Dart.
Para funcionalidades ausentes de alta prioridade, veja TODO
Este aplicativo usa a biblioteca de formatação C++20. Requer um compilador C++ muito recente, como g++>=13, Clang>=16.
Recomendo usar sistema operacional Linux (testado apenas no Debian sid/trixie) porque é fácil de configurar.
NOTA: Use APENAS versões do Debian/Ubuntu que forneçam gcc>=13 a partir de seu próprio repositório principal. Usar gcc portado para versões antigas do Debian/Ubuntu não 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
Extraia o diretório "lib" do arquivo apk
python3 blutter.py caminho/para/app/lib/arm64-v8a dir_saida
O blutter.py detectará automaticamente a versão do Dart a partir do motor Flutter e chamará o executável do blutter para obter as informações do libapp.so.
Se o executável do blutter para a versão necessária do Dart não existir, o script fará checkout automaticamente do código-fonte do Dart e o compilará.
Você pode usar git pull para atualizar e executar blutter.py com a opção --rebuild para forçar a reconstrução do executável
python3 blutter.py caminho/para/app/lib/arm64-v8a dir_saida --rebuild
Eu uso o Visual Studio para desenvolver o Blutter no Windows. A opção --vs-sln pode ser usada para gerar uma solução do Visual Studio.
python blutter.py caminho\para\lib\arm64-v8a build\vs --vs-sln