
Défis pratiques pour apprendre à rétro-concevoir des applications Flutter.
Ce dépôt contient une série de défis progressifs conçus pour introduire la rétro-ingénierie des applications Flutter. Comme il n'y a pas beaucoup d'articles de blog ou de tutoriels qui expliquent le reverse engineering de Flutter en détail, j'ai décidé de créer ce dépôt comme une manière pratique de combler cette lacune.
L'objectif est de construire une base solide pour comprendre les caractéristiques uniques du framework Flutter et les techniques d'analyse couramment utilisées avec celui-ci.
Les défis sont structurés de manière incrémentielle, en commençant par les concepts fondamentaux et en progressant vers des techniques intermédiaires et plus avancées telles que l'interception du trafic réseau et le contournement des protections.
Au lieu d'un compte rendu traditionnel, chaque défi comprend une solution détaillée, de style article de blog, qui vous guide pas à pas dans le processus de rétro-ingénierie, mêlant résolution pratique de problèmes et théorie pertinente afin que les concepts soient appris directement par la pratique.
Si vous pensez qu'il vous manque certains prérequis, les ressources suivantes sont fortement recommandées :
Chaque répertoire de défi comprend :
chall<X>.apk : l'APK compilé pour le défi ;solution/_images/ : images référencées dans la solution ;solution/solution.md : une solution détaillée, étape par étape ;source/ : les fichiers source de l'application et les instructions de construction, pour ceux qui souhaitent modifier l'application et expérimenter davantage ;$ tree
.
├── chall<X>.apk
├── solution
│ ├── _images
│ │ ├── chall<X_Y>.png
│ └── solution.md
└── src
├── how_to_build.md
└── main.dart
Certains de ces outils nécessitent des configurations spécifiques. Pour simplifier l'installation et assurer la reproductibilité, des Dockerfiles sont fournis pour certains de ces outils et peuvent être trouvés dans le répertoire /tools.
Outils :
apktool - Outil pour décompiler et reconstruire les APK (lien)Blutter - Décompilateur pour applications Flutter (lien, Dockerfile inclus dans ce dépôt)Frida - Boîte à outils d'instrumentation dynamique (lien)jadx - Décompilateur Android (lien)reFlutter - Framework pour la rétro-ingénierie Flutter (lien)Burp Suite - Proxy pour l'interception du trafic (lien)Ce projet est distribué sous la licence MIT. Consultez le fichier LICENSE pour plus de détails.
Ce dépôt est créé exclusivement à des fins éducatives. Les techniques décrites ne doivent être utilisées que sur des applications pour lesquelles vous avez le droit d'analyser ou dans des environnements de test contrôlés. L'auteur décline toute responsabilité en cas d'utilisation abusive des informations contenues dans ce dépôt.