
Flutterアプリケーションのリバースエンジニアリングを学ぶための実践的なチャレンジ問題集。
このリポジトリには、Flutterアプリケーションのリバースエンジニアリングを紹介するために設計された、段階的なチャレンジのシリーズが含まれています。Flutterのリバースエンジニアリングを詳細に説明するブログ記事やチュートリアルは多くないため、このギャップを埋めるための実践的な方法としてこのリポジトリを作成しました。
目標は、Flutterフレームワークのユニークな特性と、それに一般的に使用される分析技術を理解するための強固な基盤を構築することです。
チャレンジは段階的に構成されており、基本概念から始まり、ネットワークトラフィックの傍受や保護バイパスなどの中級およびより高度な技術へと進みます。
従来のレポート形式ではなく、各チャレンジには詳細なブログ記事風のソリューションが含まれており、リバースエンジニアリングのプロセスをステップバイステップでガイドし、実践的な問題解決と関連する理論を融合させることで、概念を直接実践を通じて学べるようになっています。
前提条件が不足していると感じた場合は、以下のリソースを強くお勧めします:
各チャレンジディレクトリには以下が含まれます:
chall<X>.apk: チャレンジ用にコンパイルされたAPK;solution/_images/: ソリューションで参照される画像;solution/solution.md: 詳細なステップバイステップのソリューション;source/: アプリケーションのソースファイルとビルド手順。アプリを変更してさらに実験したい方向け;$ tree
.
├── chall<X>.apk
├── solution
│ ├── _images
│ │ ├── chall<X_Y>.png
│ └── solution.md
└── src
├── how_to_build.md
└── main.dart
これらのツールの中には特定の設定が必要なものもあります。セットアップを簡素化し再現性を確保するために、一部のツールにはDockerfileが提供されており、/toolsディレクトリにあります。
ツール:
apktool - APKのデコンパイルと再構築のためのツール (リンク)Blutter - Flutterアプリケーション用のデコンパイラ (リンク, このリポジトリに含まれるDockerfile)Frida - 動的インストルメンテーションツールキット (リンク)jadx - Androidデコンパイラ (リンク)reFlutter - Flutterリバースエンジニアリングのためのフレームワーク (リンク)Burp Suite - トラフィック傍受のためのプロキシ (リンク)このプロジェクトはMITライセンスの下で配布されています。詳細についてはLICENSEファイルを参照してください。
このリポジトリは教育目的でのみ作成されています。説明されている技術は、分析する権限があるアプリケーション、または管理されたテスト環境でのみ使用する必要があります。著者は、このリポジトリに含まれる情報の誤用について一切の責任を負いません。