Ayant un fichier .apk, est-il possible d'obtenir son code source?
Ayant un fichier .apk, est-il possible d'obtenir son code source?
Réponses:
Même si ProGuard a été utilisé, vous pouvez toujours obtenir des informations intéressantes. Voici une question StackOverflow avec une explication détaillée: Android: Obtention du code source à partir d'un fichier APK . Vidéo YouTube avec un guide détaillé . Et une entrée de blog à ce sujet: Comment récupérer le code source d'un fichier APK Android .
Si vous avez de la chance et que votre .apk
fichier n'est pas protégé par Proguard ou analogique, vous pouvez utiliser l' outil APK . Il s'agit d'un outil pour la rétro-ingénierie d'applications tierces, fermées et binaires Android.
Depuis l' un des wiki de la communauté de Parnkul Garg dans SO :
Procédure de décodage des fichiers .apk, méthode pas à pas:
Créez un nouveau dossier et copiez le fichier .apk que vous souhaitez décoder.
Maintenant, renommez l'extension de ce fichier .apk en .zip (par exemple renommez de filename.apk en filename.zip) et enregistrez-la. Vous pouvez maintenant accéder aux fichiers classes.dex, etc. À ce stade, vous pouvez voir les fichiers dessinables mais pas les fichiers xml et java, alors continuez.
Extrayez maintenant ce fichier .zip dans le même dossier (ou NOUVEAU DOSSIER).
Téléchargez dex2jar et extrayez-le dans le même dossier (ou NOUVEAU DOSSIER).
Déplacez le fichier classes.dex dans le dossier dex2jar.
Ouvrez maintenant l'invite de commande et changez le répertoire dans ce dossier (ou NOUVEAU DOSSIER). Ensuite, écrivez d2j-dex2jar classes.dex
et appuyez sur Entrée. Vous avez maintenant le fichier classes.dex.dex2jar dans le même dossier.
Téléchargez le décompilateur Java , double-cliquez sur jd-gui, cliquez sur le fichier ouvert et ouvrez le fichier classes.dex.dex2jar à partir de ce dossier: vous obtenez maintenant les fichiers de classe.
Enregistrez tous ces fichiers de classe (dans jd-gui, cliquez sur Fichier -> Enregistrer toutes les sources) par nom src. À ce stade, vous obtenez la source java mais les fichiers .xml sont toujours illisibles, alors continuez.
Maintenant, ouvrez un autre nouveau dossier
Mettez le fichier .apk que vous souhaitez décoder
Téléchargez la dernière version d' apktool ET la fenêtre d'installation d'apktool (les deux peuvent être téléchargées à partir du même lien) et placez-les dans le même dossier
Téléchargez framework-res.apk et placez-le dans le même dossier (tous les fichiers apk n'ont pas besoin de ce fichier, mais cela ne fait pas de mal)
Ouvrez une fenêtre de commande
Accédez au répertoire racine de APKtool et tapez la commande suivante:
apktool if framework-res.apk
apktool d myApp.apk
(où myApp.apk désigne le nom de fichier que vous souhaitez décoder)
maintenant, vous obtenez un dossier de fichiers dans ce dossier et pouvez facilement lire les fichiers xml de l'apk.
Ce n'est pas une étape, copiez simplement le contenu des deux dossiers (dans ce cas, les deux nouveaux dossiers) dans le seul
et profitez du code source ...