web-dev-qa-db-fra.com

Flutter déboguer Apk décompiler pour obtenir le code source

J'ai perdu le code source de mon application Flutter en raison d'une corruption de lecteur, mais j'ai mon debug.apk dans mon Android. Quelqu'un peut-il s'il vous plaît me dire comment décompiler le Flutter apk pour obtenir le code source. J'ai essayé de le décompiler à l'aide de décompilateurs mais il ne donne pas mon le code source car le code source flutter est en langage Dart.

8
Jagraj Singh

Si votre debug.apk est en mode débogage, vous pouvez utiliser apktool pour extraire les composants de l'apk (j'utilise l'extraction de Word car apk est un fichier Zip).

Flutter, en mode débogage, conserve le code source (avec commentaires!) Dans le fichier kernel_blob.bin. Ainsi, à l'aide de la commande suivante, devrait vous aider à extraire le code dans un fichier:

strings /path/to/extracted/apk/assets/flutter_assets/kernel_blob.bin > extracted_code.Dart

S'il vous plaît, faites attention - Vous aurez besoin de nettoyer 'extract_code.Dart', des chaînes non pertinentes/ordures.

Essayez de rechercher des chaînes comme "Dart", "import", "void" et d'autres mots clés dans 'extract_code.Dart', cela vous aidera à trouver le code lui-même.

Voici un exemple de mon Ubuntu:

Example

Si l'apk est compilé en mode "release", l'extraction du code sera beaucoup plus difficile, car le code est compilé dans le fichier isolate_snapshot_instr, qui n'est pas un assemblage de bras brut, et n'est désérialisé qu'en utilisant le moteur Flutter au moment de l'exécution. Vous pouvez en savoir plus ici

3
user3467955