
Flutter モバイルアプリケーションリバースエンジニアリングツール
Flutter モバイルアプリケーションリバースエンジニアリングツール(Dart AOT ランタイムのコンパイルによる)
現在、このアプリケーションは Android の libapp.so(arm64 のみ)のみをサポートしています。 また、現在のところ、最近の Dart バージョンでのみ動作します。
高優先度の不足機能については、TODO を参照してください。
このアプリケーションは C++20 フォーマッティングライブラリを使用しています。g++>=13、Clang>=16 など、非常に新しい C++ コンパイラが必要です。
セットアップが簡単なため、Linux OS(Debian sid/trixie でのみテスト済み)の使用をお勧めします。
注記: gcc>=13 を自身のメインリポジトリから提供している Debian/Ubuntu バージョンのみを使用してください。 古い Debian/Ubuntu バージョンに ported された gcc を使用しても動作しません。
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
APK ファイルから "lib" ディレクトリを抽出
python3 blutter.py path/to/app/lib/arm64-v8a out_dir
blutter.py は Flutter エンジンから Dart バージョンを自動検出し、blutter の実行ファイルを呼び出して libapp.so から情報を取得します。
必要な Dart バージョンに対応する blutter 実行ファイルが存在しない場合、スクリプトは自動的に Dart ソースコードをチェックアウトしてコンパイルします。
git pull を使用して更新し、--rebuild オプションを指定して blutter.py を実行することで、実行ファイルの再ビルドを強制できます。
python3 blutter.py path/to/app/lib/arm64-v8a out_dir --rebuild
私は Windows 上で Blutter を開発するために Visual Studio を使用しています。--vs-sln オプションを使用して Visual Studio ソリューションを生成できます。
python blutter.py path\to\lib\arm64-v8a build\vs --vs-sln