Décompiler une application android (apk) avec DeKomPoide

Salut à toi public !!

Lorsque l’on est un pionnier de l’application android, il arrive que l’on souhaite récupérer le contenu java des applications existantes…

OUI MAIS !! Google ne l’entends pas de cette oreille puisqu’il tente vainement de censurer l’uncensurable (ben oui fallait choisir autre chose que du java si on voulais pas taper dans l’open source hein !)
par l’intermédiaire d’un fichier .dex « censé » rendre les .class inaccessibles (et donc par conséquent les .java de l’application également).

Voici la marche a suivre pour dé-compiler un apk et en obtenir les sources java (ainsi que les images et pas mal d’autres broutilles):

  1. Téléchargez ce petit soft de ma fabrication qui nous évite quelques étapes/téléchargements contraignants
  2. Lancez DeKompoid (je sais , c’est technique) : vous atterrissez normalement la dessus :

  3. Deux champs a renseigner : Le chemin absolu vers le fichier .apk a décompiler, et le chemin absolu vers le dossier ou vous souhaitez le décompiler, cliquez sur le bouton « Décompiler » , TADDAAAHHHH !!!
  4. Les classes se trouvent dans src/sous le format .class , les images dans res\drawable (par défaut, mais cela dépend de la structure de votre application) les fichiers xml quand a eux sont malheureusement indécryptable pour le moment.
  5. Vous n’avez plus qu’a lire vos .class avec un programme de décompilation de .class tels que l’excellent (et gratuit)  jdecompiler téléchargeable ici.

 

Je suis bien entendu tous ouie si quelqu’un souhaite apporter des améliorations au processus.

 

Bien a vous.

Idle

Article rédigé par Idleman

45 réflexions au sujet de « Décompiler une application android (apk) avec DeKomPoide »

  1. Maxime

    Bonjour
    je suis développeur et je suis d’accord pour t’aider à améliorer ton programme (j’ai remarqué quelques petit bug). J’ai recu une formation de développeur ou l’on m’a bien appris a chassé le bug.

    Dis-moi si tu est d’accord et je donnerais mon e-mail.

    Bonne continuation.

    Répondre
  2. Michel

    Merci! Mais comment re-compiler?

    Répondre
    1. Idleman Auteur de l’article

      Personnellement j’utilise éclipse avec le plugin ADT et le sdk de google il suffit donc de faire click droit sur ton projet -> export -> android application (apk) et c’est bon ^^ . Il y a évidemment moyens de le faire sans éclipse mais c’est bien plus casse couille et potentiellement moins propre a la fin :).

      Répondre
      1. DD

        Bravo pour ton programme.

        Je souhaite justement éditer les sources décompilées d’un APK avec Eclipse mais je ne sais pas comment faire.

        Je ne vais surement pas te paraitre très doué mais peux tu m’indiquer comment tu procèdes avec Eclipse et le répertoire obtenu précédemment ?

        Typiquement import, ouvrir un projet ?

        Merci d’avance

        Répondre
        1. Idleman Auteur de l’article

          Disons qu’une fois dé-compilé le programme n’a pas forcement exactement la même tronche qu’un projet eclipse.

          Si tu as le plugin ADT sur ton eclipse, tu peux créer un nouveau projet puis dans l’explorateur window copier les fichiers java de le dossier approprié, les fixer xml dans les asset etc..

          Répondre
  3. William

    Salut,

    J’aurais bien aimer tester ton programme mais a chaque fois il ne trouve pas mon JRE. Je ne sais pas ou il essaie d’aller le chercher mais impossible. Je sais qu’avec les versions 64 bits il y en sans arrêt des soucis avec « Programmes » et « Programmes (x86) » mais moi je l’ai dans les 2 donc je ne sais pas ou est le problème.

    Répondre
    1. Idleman Auteur de l’article

      Salut, désolé de te répondre si tard, ton commentaire s’est perdu dans mon panel admin ^^.

      Le problème viens surement de ton installation de la JRE, mon programme appelle le chemin définis dans la variable d’environnement JAVA_HOME , regarde dans tes variables d’environnement si le soucis ne viens pas de la :)

      Répondre
  4. adjee

    Bonjour,
    Avant tout je vous remercie pour votre soft qui est tres facile à utiliser malheureusment j’arrive pas à decompiler pour voir le code source d’une application ‘ RF signal TRACKER’.

    voici l’erreur qui me mets :

    erreur lors de la compilation : java.lang.RunetimeException:RunetimeException:Error in method:[Lcom/hotrod/utility/rfsignaltrackereclair/DatabaseAssistant;.exportKMLTable(Ljava/lang/string;)V]

    je sais pas pourquoi ça marche pas , est ce que le code est tres protege ou quoi ?

    merci d’avance pour votre aide.

    cordialement

    Répondre
    1. Idleman Auteur de l’article

      MMhh, la je ne vois pas du tout d’ou ça pourrais venir , désolé… peut être en réinstallant ta JRE…

      Répondre
  5. adjee

    salut idleman,

    merci pour votre réponse, j’ai réinstallé encore la JRE mais sans résultats.
    Je me demande est ce que c’est possible que je vous envoie l’APK RF signal TRACKER et vous tester si vous arriver à voir l’arborescence du code?

    bonne journée.

    Répondre
    1. Idleman Auteur de l’article

      Désolé, je n’ai pas le temps pour ça, si le logiciel ne fonctionne pas chez toi c’est certainement que l’application est trop complexe ou encrypté d’une façon particulière.

      Répondre
  6. adjee

    Bonjour,
    pas de soucis…merci en tout cas pour votre reponse.
    juste une petite question : est ce que votre soft ça marche pour toute les appli ou il y’a des appli ou ça marche pas?
    merci encore

    Répondre
    1. Idleman Auteur de l’article

      Jusqu’ici ça avait toujours fonctionné de mon côté, mais android évolue, mon programme non, il est donc possible que certains APK ne passent plus correctement à la décompilation :).

      Répondre
  7. mimi

    pour info

    Décompiler une application android (apk) avec DeKomPoide

    perso, je renome le fichier *.apk en *.rar ensuite je lance winrar qui fait la meme chose que DeKomPoide

    Répondre
    1. Idleman Auteur de l’article

      Dekompoid fait bien plus que ça :), il commence évidemment par faire la manip dont tu parles, puis il traduit le .dex ainsi décompressé en .jar, ce qui n’est pas possible en changeant simplement l’extension et reconstitue l’arborescence exacte en .class java

      Répondre
        1. virgilfree

          Bonsoir,
          ben justement je travaille dessut, du coup je vous dirait si sa fonctionne.
          CDLT

          Répondre
  8. Vadorequest

    Ton serveur est super lent pour télécharger ton application. J’ai pas un bon réseau mais quand même ^^’

    Merci pour le soft.

    Répondre
    1. Idleman Auteur de l’article

      Je sais, j’héberge mon serveur sur ma connexion perso, et free n’est pas très sympa avec mon nouvel appart je suis a 3 plombes de la borne désolé :)

      Répondre
  9. ARMADA

    C’est intelligent ce que tu as fais.

    Y a-t-il un moyen de sécuriser son apk pour qu’il ne soit pas décompiler?

    Répondre
    1. Idleman Auteur de l’article

      Pas vraiment, le java n’est pas fait pour rester secret ^^, le meilleur moyen reste l’obsfuscation, c’est a dire changer automatiquement tous les noms de fonctions et variables a la compilation par des lettres non significative

      Répondre
      1. ARMADA

        merci pour la réponse

        Répondre
  10. Alonzo

    salut, je viens d’essayer ton prog mais je ne vois pas la difference avec 7-zip. Par contre si t’as un truc en francais pour ouvrir et modifier les xml d’un apk je suis preneur …

    Répondre
    1. Alonzo

      ainsi que les signatures car autosign ne marche pas … gracias amigo

      Répondre
    2. Idleman Auteur de l’article

      La différence, c’est que ca décompile aussi le .dex et que ça recréé l’arborescence :), pour décompiler les xml il y a un programme existant mais je n’arrive plus a me rappeler le nom c’est trop vieux désolé

      Répondre
      1. Alonzo

        ok tans pis ! accepte moi sur skype 2 min, j’ai un truc a te demander …

        Répondre
        1. Idleman Auteur de l’article

          Désolé je n’ai plus skype d’installé depuis un bail ^^

          Répondre
  11. H3

    Mince alors, une recherche Google plus tard, je tombe sur ce blog à tête connue :D

    Répondre
    1. Idleman Auteur de l’article

      hé hé hé, le idle est parttttouuuuut :p, j’y suis pour rien si google prends du plaisir à relayer mes conneries, comme quoi c’est vraiment un moteur sur le déclin XD.

      Répondre
  12. DoomLike

    MERCI BCP POUR LAPPPLII !!!!
    SIMPLE
    EFFICE
    EN FRANCAIS !
    oui jefais du capslock. Je suis heureux.

    Répondre
  13. Coletta

    Salut,
    Est que tu aurais un tuto pour recompiler avec ADT ?
    Merci

    Répondre
    1. Idleman Auteur de l’article

      C’est qu’android évolue et pas mon appli ^^, il y à donc des chances que ça foire pour certaines applications désolé :)

      Répondre
  14. bnz25

    Salut, je pense que je suis sûrement le énième à poser 1 kestion ballote (oui je débute aussi :) ) du genre, mais je cherche à décompiler l’appli sms/mms d’origine d’ics, pour augmenter la limite d’sms avant le passage en mms, penses tu que ton soft pourrais m’aider?
    Meci d’avance, et merci de partager ton travail, c’est grace a des gens kom toi ke le shmilblik avance. Lol
    PS: j’ai 1 connexion via clé 3g donc je cherche à éviter de télécharger de l’inutile…

    Répondre
    1. Idleman Auteur de l’article

      Mon appli permet de de-compiler du mieux qu’elle peux un .apk, après ce que tu parvient à en faire derrière dépend de tes compétences ^^, je ne peux donc rien te garantir par rapport à ca, tu devra certainement faire quelques adaptation pour pouvoir modifier ta limite et le recompiler, de plus android à beaucoup changé depuis que j’ai créé cette application, il est possible que certaines parties ne fonctionnent plus aussi bien qu’avant, bref trop d’inconnues pour te répondre :)

      Répondre
      1. bnz25

        Ok merci, c’est vrai que j’ai peut être développé un peu trop Lol
        Je souhaitais juste savoir si sous ICS ça pouvait tjs fonctionner,, vu que comme tu le dis toi même, ton appli commence à dater.
        Mais grand merci d’avoir répondu. Je vais tenter le coup, c’est sympa

        Répondre
        1. seb

          Salut, heu… les sources de l’appli SMS sont dispo en prenant les sources d’android tout simplement dans un /system je crois

          Répondre
  15. lancelot

    Ton programme n’est pas compatible avec JRE 1.8.x

    Répondre
  16. Fab64990

    J’aimerai bien prendre contact avec toi car tu me sembles plutôt calé niveau DEV.J’ai un projet qui pourrait, me semble-t-il t’interressé.
    Appel au DEV ! :evil:

    Répondre
  17. Anon

    J’avais pas trop d’espoir vu l’ancienneté du tuto, mais c’est nickel.

    Juste une erreur (Java runtime exception je sais plus quoi), mais tous les fichiers dont j’avais besoin avaient l’air d’être là.

    Je m’attendais a galérer toute la soirée mais en 3 secondes c’était plié, merci.

    Ça mériterais de sortir en version propre avec deux ou trois fonctionnalités en plus, parce que pour info l’article arrive dans les premiers sur google pour la recherche « decompiler apk ». :siffle:

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Xo ^_^ :siffle: :p :-( :evil: oO :) T_T <3 :D more »