web-dev-qa-db-fra.com

comment extraire le code du fichier apk

En fait, j'essaie d'extraire le code d'un fichier .apk appelé cloudfilz.apk et je voulais manipuler son code source afin de suivre les étapes indiquées ci-dessous: -

créez un nouveau dossier et mettez le fichier .apk (que vous voulez décoder) maintenant renommez ce fichier .apk avec l’extension .Zip (par exemple: renommez de nom de fichier.apk en nom de fichier.apk.Zip) et enregistrez-le .. maintenant vous obtenez des classes fichiers .dex, etc ... à ce stade, vous êtes en mesure de voir les fichiers dessinables mais pas XML et Java ... alors continuez ...

étape 2:

maintenant, extrayez ce fichier apk Zip dans le même dossier (dans cet exemple ou dans le cas d'un nouveau dossier). maintenant dowmload dex2jar à partir de ce lien http://code.google.com/p/dex2jar/ et extrayez-le dans le même dossier (dans ce cas, NEW FOLDER) ..... Ouvrez maintenant la commande Invite et accédez à ce dossier (dans ce cas, NEW FOLDER) .... après avoir atteint l'écriture "dex2jar classes.dex" et appuyez sur Entrée ..... vous obtenez maintenant le fichier classes.dex.dex2jar dans le même dossier .... ..

=> Question: -J'ai réussi à atteindre l'étape 1 mais lors de l'étape 2 lorsque j'exécute dex2jar classes.dex, j'obtiens une erreur dans la commande Prompt Java.lang.UnsupportedClassVersionError, Je sais que ceci est dû à une incompatibilité entre la version de jdk que j'ai installée et le numéro de version de classes.dex jdk, donc coincé ici et que dnt n'a pas de sortie ...

71
Gaurav Chawla

Tout fichier .apk du marché ou non signé

  1. Si vous apk est téléchargé à partir du marché et donc signé Installez Astro File Manager à partir du marché. Ouvrez Astro> Outils> Gestionnaire d’applications/Sauvegarde et sélectionnez l’application à sauvegarder sur la carte SD. Montez le téléphone en tant que clé USB et accédez au dossier 'backupsapps' pour trouver l'apk de l'application cible (appelons-le app.apk). Copiez-le sur votre disque local même s'il s'agit d'un fichier .apk non signé.

  2. Téléchargez Dex2Jar Zip à partir de ce lien: SourceForge

  3. Décompressez le fichier Zip téléchargé.

  4. Ouvrez la commande Invitez et écrivez la commande suivante en accédant au répertoire où se trouve le fichier exe dex2jar et copiez également l'apk dans le même répertoire.

    dex2jar targetapp.apk file ((./ dex2jar app.apk sur le terminal)

  5. http://jd.benow.ca/ téléchargez le décompilateur à partir de ce lien.

  6. Ouvrez "targetapp.apk.dex2jar.jar" avec le fichier jd-gui> Enregistrer toutes les sources pour enregistrer les fichiers de classe du fichier jar dans Java.

29
Gaurav Chawla

Remarque: sauf indication contraire, toutes les instructions suivantes s'appliquent universellement (c'est-à-dire à tous les systèmes d'exploitation).


Prérequis

Tu auras besoin de:

Pas

Étape 1: Modification de l'extension du fichier APK

  1. Modifiez l'extension du fichier .apk En ajoutant une extension .Zip Au nom du fichier ou en remplaçant .apk Par .Zip.

    Par exemple, com.example.apk Devient com.example.Zip Ou com.example.apk.Zip. Notez que sous Windows et macOS, il peut vous demander si vous êtes sûr de vouloir modifier l’extension du fichier. Cliquez sur OK ou Add si vous utilisez macOS:

macOS add extension confirm dialog

Étape 2: Extraction Java fichiers de APK

  1. Extrayez le fichier APK renommé dans un dossier spécifique. Par exemple, supposons que ce dossier soit demofolder.

    • Si cela ne fonctionne pas, essayez d'ouvrir le fichier dans une autre application telle que WinZip ou 7-Zip.

    • Pour macOS, vous pouvez essayer de lancer unzip dans Terminal (disponible à /Applications/Terminal.app), Où il faut un ou plusieurs arguments: le fichier à décompresser + arguments facultatifs. Voir man unzip Pour la documentation et les arguments.

  2. Téléchargez dex2jar(voir toutes les versions sur GitHub) et extrayez ce fichier Zip dans le même dossier que celui indiqué au point précédent.

  3. Ouvrez l'invite de commande (ou un terminal) et changez votre répertoire actuel pour le dossier créé au point précédent, tapez la commande d2j-dex2jar.bat classes.dex Et appuyez sur entrée. Cela générera un fichier classes-dex2jar.jar Dans le même dossier.

    • Utilisateurs de MacOS/Linux: Remplacez d2j-dex2jar.bat par d2j-dex2jar.sh. En d'autres termes, exécutez d2j-jar2dex.sh classes.dex Dans le terminal et appuyez sur Entrée.
  4. Téléchargez Java Decompiler(voir toutes les versions sur Github) et extrayez-le et démarrez (c'est-à-dire double-cliquez) sur l'exécutable/l'application.

  5. A partir de la fenêtre de JD-GUI, faites glisser le fichier classes-dex2jar.jar Généré dans celui-ci ou accédez à File > Open File... Et recherchez le fichier jar.

  6. Ensuite, dans le menu, allez à File > Save All Sources (Windows: Ctrl+Alt+S, macOS: ++S) Cela devrait ouvrir une boîte de dialogue vous demandant où enregistrer un fichier Zip nommé `classes-dex2jar.jar.src.Zip" et contenant tous les packages et Java. (Vous pouvez renommer le fichier Zip en être sauvé)

  7. Extrayez ce fichier Zip (classes-dex2jar.jar.src.Zip) Et vous devriez obtenir tous les fichiers Java de l’application.

Étape 3: Obtenir les fichiers xml à partir de APK

  • Pour plus d'informations, consultez le apktool site Web pour obtenir des instructions d'installation et plus encore.
  • Les fenêtres:

    1. Téléchargez le script d'encapsulation (facultatif) et le apktool jar (obligatoire) et placez-le dans le même dossier (par exemple, myxmlfolder).
    2. Remplacez votre répertoire actuel par le dossier myxmlfolder et renommez le fichier jar apktool en apktool.jar.
    3. Placez le fichier .apk Dans le même dossier (i.e myxmlfolder).
    4. Ouvrez la commande Invite (ou terminal) et remplacez votre répertoire actuel par le dossier où est stocké apktool (dans ce cas, myxmlfolder). Ensuite, tapez la commande apktool if framework-res.apk.

      Ce que nous faisons ici, c'est que nous installons un cadre. Pour plus d'informations, voir le docs .

    5. La commande ci-dessus devrait avoir pour résultat "Framework installed ..."
    6. Dans l'invite de commande, tapez la commande apktool d filename.apk (Où filename est le nom du fichier apk). Cela devrait décoder le fichier. Pour plus d'informations, voir le docs .

      Cela devrait entraîner la sortie d'un dossier filename.out, Où filename est le nom d'origine du fichier apk sans l'extension de fichier .apk. Dans ce dossier se trouvent tous les fichiers XML tels que la mise en page, les éléments dessinables, etc.

Source: Comment obtenir le code source d'un fichier APK - Comptech Blogspot

92
Kiran

étape 1:

enter image description hereTéléchargez dex2jar ici . Créez un projet Java et collez (dex2jar-0.0.7.11-SNAPSHOT/lib)].

Copier le fichier apk dans Java project

Exécutez-le et, après avoir actualisé le projet, vous obtenez le fichier jar .Utilisation Java, vous pouvez afficher tous les Java

étape 2: Télécharger Java decompiler ici

2
Ramesh Akula

Cliquez ici c'est un bon tutoriel pour les deux fenêtres/Ubuntu.

  1. apktool1.5.1.jar télécharger depuis ici .

  2. apktool-install-linux-r05-ibot télécharger à partir de ici .

  3. dex2jar-0.0.9.15.Zip télécharger à partir de ici .

  4. jd-gui-0.3.3.linux.i686.tar.gz (correcteur Java) télécharger à partir de ici .

  5. framework-res.apk (situé sur votre Android périphérique/système/framework /)

Procédure:

  1. Renommez le fichier .apk et remplacez l'extension par .Zip.

il deviendra .Zip.

  1. Puis extraire .Zip.

  2. Décompressez le fichier téléchargé dex2jar-0.0.9.15.Zip, copiez le contenu et collez-le dans le dossier de décompression.

  3. Ouvrez le terminal et changez le répertoire pour décompresser “dex2jar-0.0.9.15“

- cd - sh dex2jar.sh classes.dex (le résultat de cette commande “classes.dex.dex2jar.jar” sera dans votre dossier extrait lui-même) .

  1. Maintenant, créez un nouveau dossier et copiez-y “classes.dex.dex2jar.jar”.

  2. Décompressez "jd-gui-0.3.3.linux.i686.Zip" et ouvrez le "Décompilateur Java" en mode plein écran.

  3. Cliquez sur ouvrir le fichier et sélectionnez "classes.dex.dex2jar.jar" dans la fenêtre.

  4. “Java Decompiler” et allez dans fichier> enregistrer et sauvegarder le source dans un fichier .Zip.

  5. Créez un dossier “source_code”.

  6. Extrayez le fichier .Zip enregistré et copiez le contenu dans le dossier "source_code".

  7. Ce sera où nous garderons votre code source.

  8. Extrait apktool1.5.1.tar.bz2, vous obtenez apktool.jar

  9. Maintenant, décompressez “apktool-install-linux-r05-ibot.Zip”

  10. Copiez “framework-res.apk”, “.apk” et apktool.jar

  11. Collez-le dans le dossier "apktool-install-linux-r05-ibot" décompressé (ligne n ° 13).

  12. Puis ouvrez le terminal et tapez:

    - cd

    - chown -R: 'apktool.jar'

    - chown -R: 'apktool'

    - chown -R: 'aapt'

    - Sudo chmod + x 'apktool.jar'

    - Sudo chmod + x ‘apktool’

    - Sudo chmod + x 'aapt'

    - Sudo mv apktool.jar/usr/local/bin

    - Sudo mv apktool/usr/local/bin

    - Sudo mv aapt/usr/local/bin

    - apktool si framework-res.apk - apktool d .apk

0