J'essaie de désosser une application android existante et de comprendre comment une interface utilisateur particulière est construite. J'ai trouvé que je peux renommer l'apk pour compresser et voir une partie de la source compilée. Le répertoire res/layout est rempli avec tous les fichiers xml qui définissent l'interface utilisateur, mais alors qu'ils ont l'extension xml, ils ne sont pas au format XML. Est-il possible de convertir ces fichiers en balisage basé sur du texte?Extraire Android .apk et lire le contenu du fichier XML dans res/layout
Répondre
Je pense que vous pouvez utiliser android-apktool. Les fichiers XML semblent très bien.
Commencez par recopier votre .apk à .zip. A l'intérieur, vous obtiendrez une version compilée des fichiers de classe Java appelés .dex. appliquez l'astuce suivante pour convertir ce dex en fichiers de classe
Il existe un moyen de le faire. Un moyen légèrement atypique est de télécharger cet outil opensource dextojar
http://code.google.com/p/dex2jar/
Ceci convertira vos fichiers dex en fichiers JAR. Unjar ces fichiers pour obtenir des fichiers de classe Java.
Inversez ensuite les fichiers de classe Java pour obtenir le code Java. Ne l'utilisez pas pour casser certains projets commerciaux.
Merci
Informations utiles, je cherche les fichiers xml tho, pas les classes java. – nolan
cette méthode n'est pas supportée maintenant, connaissez-vous une autre méthode que apktool pour obtenir les fichiers xml. – AndroidHacker
Downvoted parce que cela ne répond pas à la question. La question concerne spécifiquement le XML à l'intérieur des fichiers APK, qui est dans un format non textuel. La réponse correcte (en utilisant android-apktool) permet la récupération de ces fichiers, mais il ne suffit pas de changer le nom en zip. Utiliser 'dextojar' est utile mais ne contribue pas à répondre à la question posée. –
si vous voulez juste savoir la construction de l'interface utilisateur, vous pouvez utiliser la visionneuse Hiérarchie
Downvoted pour ne pas fournir un lien, une description ou une justification – Penn
Créer un nouveau dossier et placez le fichier .apk que vous souhaitez décoder dans ce.
Télécharger la dernière version de here.
Ouvrir cmd puis naviguer dans le répertoire racine de APKtool et tapez la commande suivante:
apktool d myApp.apk
(où myApp.apk est le nom que vous voulez décoder)
maintenant vous avez un fichier dossier dans ce dossier et peut facilement lire les fichiers XML de l'apk.
Voici le link pour plus de détails les instructions d'installation
- 1. android installation du fichier apk
- 2. Pour lire le fichier XML dans Android
- 3. PHP: Comment obtenir la version du fichier .apk android?
- 4. C# Lire le fichier et extraire des lignes spécifiques
- 5. Nom du fichier lors du téléchargement sur Android APK
- 6. C# lire le contenu du fichier et trouver des chaînes
- 7. Lire le contenu d'une URL dans Android
- 8. Impossible d'installer le fichier apk dans mon android mobile
- 9. Lire le contenu du fichier texte périodiquement dans l'application C#
- 10. Comment lire le contenu d'un tag XML
- 11. Ressources android dans apk
- 12. Télécharger le fichier dans coldfusion et lire son contenu
- 13. Lire le fichier txt dans res/raw/dans Android NDK
- 14. Lire le contenu du fichier et trouver le nom de fichier complet sur le disque
- 15. Comment lire XML CDATA contenu
- 16. Android Market Upload fichier APK se bloque
- 17. Comment extraire le contenu XML d'une variable XDocument?
- 18. Extraire du contenu avec XPath?
- 19. comment lire une valeur particulière dans le fichier manifeste android ou xml dans android?
- 20. écrire le contenu xml dans un fichier
- 21. Comment charger un fichier xml et le lire dans Silverlight?
- 22. Décompressez fichier ZIP et extraire le contenu du nom du dossier inconnu
- 23. Comment puis-je lire le contenu du fichier et envoyé ce contenu au paramètre fonctions
- 24. Comment installer le fichier .apk en émulateur?
- 25. Lire les données du fichier xml
- 26. xml extraire les éléments du parseur xml
- 27. Comment extraire le contenu du hashtag?
- 28. Lire des données spécifiques du fichier XML
- 29. Lire le fichier XML iTunes avec PHP
- 30. .NET lire le contenu binaire du fichier .lnk
Qu'est-ce que vous essayez exactement à l'ingénierie inverse? S'il s'agit d'un produit commercial de quelqu'un, vous ne devriez pas jouer avec. Si son open source, vous devriez aller au projet lui-même pour regarder le code. Concevoir des mises en page xml n'est pas si compliqué en tout cas ... pourquoi ne pas simplement demander "comment puis-je créer une mise en page qui ressemble à X" à la place? –
Cette clarification est utile. Peut-être que cela pourrait être une bonne idée de poser une question sur la façon de traiter ce problème de haute résolution (ou à la place de celui-ci). Quelqu'un sait probablement comment résoudre ce problème s'il y a un certain nombre d'applications qui s'affichent sans problème. Aussi, je conseillerais encore un peu de prudence sur les questions de rétroingénierie. Ce n'est pas parce que vos intentions sont pures que les lecteurs suivants seront les mêmes. –
Il est plus rapide et plus précis de se pencher sur la conception XML d'un autre utilisateur, puis de poster un Q ici et espérer que quelqu'un devine. Je regarde toujours d'abord dans le fichier XML d'autrui et ensuite je demande "comment l'améliorer". "Hacker" dans des fichiers XML n'est pas mauvais du tout (ça ne me dérangerait pas de casser mes fichiers XML). Le piratage de la logique Java est une chose mauvaise et immorale. – sandalone