
- Hound, , , Google Now Siri. Hound Google Play ( US), , , .
, , ( ), … , , .
Remarque: je ne suis pas un développeur Android professionnel, un cracker, etc., tout est fait pour satisfaire ma propre curiosité et à mes risques et périls. Signalez toute inexactitude dans les commentaires ou dans les messages privés.Tout d'abord, vous devez obtenir le fichier apk avec l'application. Vous pouvez rechercher sur Internet, mais nous ne cherchons pas de moyens faciles. J'ai téléchargé la dernière version de Google Play et retiré l'application du dossier /data/app/com.hound.android.app-1 (les droits d'administrateur, c'est-à-dire root, sont requis).Toute application pour Andoid est un fichier apk, qui est en fait une archive zip renommée. Si vous l'ouvrez avec n'importe quel archiveur, nous verrons l'image suivante:
Examinez le contenu plus en détail:- assets — , , ,
- lib — .so .
- META-INF — apk , SHA1 . , , . , , Android , .
- res — , xml , .
- AndroidManifest.xml — , , .
- classes.dex — , (), Java.
- resources.arsc — , , , res, .
Nous avons la chance que presque toute l'application, à l'exception des bibliothèques tierces, soit écrite en Java, ce qui signifie que nous n'avons pas besoin de nous asseoir dans le débogueur et de démonter le code de bas niveau.Vous devez maintenant décompresser classes.dex et essayer d'en extraire le code. Pour cela, nous utilisons Apktool . Depuis la page «Installer», téléchargez le fichier jar exécutable, ainsi qu'un wrapper pour l'utiliser à partir de la ligne de commande. Il suffit de copier les deux fichiers dans le dossier de l'application (ou de les ajouter à la variable d'environnement) et d'exécuter la commande suivante:apktool -r decode _.apk
L' option -r est nécessaire pour ne pas perdre de temps à déballer les ressources que nous n'éditerons pas.Maintenant dans le dossier du même nom avec le nom de l'application, on en voit déjà un peu plus que dans l'archiveur. Le fichier classes.dex est maintenant manquant, et à la place le dossier smali apparaît, dans lequel les classes sont stockées sous forme de fichiers texte. Mais bon, où est Java? Autour il y a des fichiers avec l'extension .smali, qui stockent quelque chose de similaire à l'assembleur.Il s'agit du langage d'opcode Dalvik dans lequel le code Java est compilé. Il existe des applications qui peuvent essayer de restaurer le code source à partir de ces fichiers, mais vous devez ensuite modifier ce code plus tard, et la reconstruction à partir du code Java est une tâche ingrate. Par conséquent, nous comprendrons le code smali, car il est tout à fait compréhensible, et les noms de fonction y sont restés intacts. Que nous utiliserons.Recherchez le code responsable de l'accès à l'application. Connaissant le nom de l'application et la langue anglaise, il devient clair que les principales classes de l'application se trouvent dans le dossier smali / com / hound / android / appcommon . Le problème est de trouver l'endroit où l'invitation est vérifiée. La recherche de fichiers nous aidera, par exemple, dans Windows, vous pouvez utiliser la commande:findstr /s /i /m _ *.*
Le code peut contenir «inviter» ou «invitation», nous allons donc supprimer la dernière lettre du mot et rechercher «inviter». Bingo, le voici, la méthode isInvitationComplete () dans le fichier smali / com / hound / android / appcommon / app / Config.smali :.method public isInvitationComplete()Z
.locals 2
.prologue
.line 578
const v0, 0x7f080174
const v1, 0x7f0b001f
invoke-direct {p0, v0, v1}, Lcom/hound/android/appcommon/app/Config;->getBoolean(II)Z
move-result v0
return v0
.end method
Il demande une variable booléenne aux paramètres de l'application et renvoie sa valeur. Mais pourquoi avons-nous besoin de telles difficultés! Revenons toujours vrai . Remplacez «move-result v0» par «const / 4 v0, 0x1» et enregistrez le fichier. Espérons que l'ensemble de l'application s'appuie sur cette petite fonction, qui désormais nous considérera comme bêta testeurs complets.Il ne reste plus qu'à remonter l'application. Nous utilisons à nouveau le merveilleux utilitaire Apktool:apktool -r build _
N'oubliez pas que nous avons besoin du dossier entier déballé avant cela, et pas seulement de smali . Une fois apktool terminé, accédez à ce dossier, puis à dist , où se trouve le fichier apk assemblé.Et cela ne fonctionnera pas, ou plutôt, il ne sera pas installé. Nous avons modifié le contenu de l'application, ce qui signifie que la signature n'est plus valide. Vous devez signer à nouveau la demande. Si vous êtes un développeur Android, vous pouvez utiliser votre propre signature et votre SDK Android. Mais beaucoup n'en ont pas, ils peuvent utiliser une signature de test et être extraits séparément de l'utilitaire SDK signapk.jar. Il existe également un utilitaire sign.jar qui possède déjà une signature intégrée. Il suffit d'exécuter la commande suivante:java -jar sign.jar _.apk
Apparaît ensuite le fichier nom_fichier.s.apk , qui sera l'application signée. Nous le téléchargeons sur l'appareil, l'installons et profitons de l'application pleinement fonctionnelle!
Et vous pouvez simplement trouver sur Internet une version corrigée que quelqu'un a récemment publiée.