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

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

  1. Maxime Réponse

    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.

    • Idleman Auteur ArticleRéponse

      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 :).

      • DD Réponse

        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

        • Idleman Auteur ArticleRéponse

          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..

  2. William Réponse

    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.

    • Idleman Auteur ArticleRéponse

      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 :)

  3. adjee Réponse

    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

    • Idleman Auteur ArticleRéponse

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

  4. adjee Réponse

    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.

    • Idleman Auteur ArticleRéponse

      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.

  5. adjee Réponse

    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

    • Idleman Auteur ArticleRéponse

      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 :).

  6. mimi Réponse

    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

    • Idleman Auteur ArticleRéponse

      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

  7. Vadorequest Réponse

    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.

    • Idleman Auteur ArticleRéponse

      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é :)

  8. ARMADA Réponse

    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?

    • Idleman Auteur ArticleRéponse

      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

  9. Alonzo Réponse

    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 …

    • Idleman Auteur ArticleRéponse

      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é

    • Idleman Auteur ArticleRéponse

      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.

  10. DoomLike Réponse

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

    • Idleman Auteur ArticleRéponse

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

  11. bnz25 Réponse

    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…

    • Idleman Auteur ArticleRéponse

      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 :)

      • bnz25 Réponse

        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

        • seb Réponse

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

  12. Fab64990 Réponse

    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:

  13. Anon Réponse

    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:

  14. TIPS Réponse

    bjr! à vous amis lecteurs! tout à fait novice dans cet art; j’aimerais trouver une bonne âme pour me décompiler deux applis. je les ai télécharger sur tablette mais impossible de savoir où elles sont stockées. Merci de votre aide si vous pouvez.

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 »