ProgHelp

Le forum d'aide en programmation

[Tuto] Modifier les sources d'une application Android

Message par Loulouw » 07 Juin 2017, 00:07

Modifier les sources d'une application Android


Bonjour dans ce petit tutoriel je vais vous montrer comment modifier les sources de vos applications Android ! Je précise qu'aucun root de votre portable n'est nécessaire. J'ai réalisé le tutoriel à l'aide de mon OnePlus 3T.

Liste des connaissances nécessaires :
  • Un minimum de Java
  • Des connaissances de base en programmation


Liste des éléments nécessaires :
  • Un smartphone sous Android / Un émulateur
  • L'application voulue installée ou en APK
  • L'application Show Java - A Java Decompiler
  • L'application APK Editor Pro (La version payante est obligatoire pour ce tuto, des versions crackées sont disponible sur le net et sont trouvables assez facilement)

Dans cette application, nous sommes limités à un mode de jeu, pour obtenir les autres il faut devenir premium. Nous allons donc chercher à débloquer les modes de jeu actuellement injouable.

Image


Étape 1 :

Une première étape consistera à analyser le code de l'application afin de comprendre la structure générale et ainsi de pouvoir apporter les modifications voulues. Mis à part si vous aimez lire du code en format samli, le format java est plus adapté pour la lecture étant de plus haut niveau.

Nous allons donc lancer l'application Show Java - A Java Decompiler qui va nous permettre d'obtenir du code sous format java et ainsi faciliter notre lecture. Pour cela :

Lancer l'application et tapoter sur le + rouge et allez chercher votre application installée ou APK

Image


Une fois l'application ou l'APK trouvé, tapotez dessus et sélectionnez le décompileur JaDX 0.6.1, si celui-ci génère des erreurs essayez les autres. Il faudra ensuite patienter le temps que l'opération s'effectue.

Image Image


Une fois l'opération finie, nous allons nous rendre à l'endroit qui nous intéresse, ici il faudra suivre le chemin suivant : java/com/picolo/android /
Dans ce dossier, nous pouvons y trouvez toutes les sources qui nous seront potentiellement utiles. Ici pour faire simple je vais vous indiquer le chemin à suivre et le fichier à regarder, il se trouve dans le dossier products et c'est le fichier Product.java. Une fois ouvert nous obtenons cela :

Image


En analysant le code nous pouvons comprendre que les products sont en fait les modes de jeux disponibles, de plus une méthode à la ligne 31 se nomme isAvailable(), nous pouvons donc être sûr que c'est cette méthode java qu'il faudra modifier. La méthode retourne vrai si les conditions sont validées sinon faux. Nous allons donc faire en sorte que celle-ci retourne tous le temps vrai.


Étape 2 :

Nous avons donc pris connaissance du code de l'application il est temps de la modifier. Ouvrez l'application APK Editor Pro et sélectionnez votre APK ou application. Une fois sélectionner tapoter sur Édition complète (RE-COMPILE).

Image


Après cela il vous faudra cliquer sur "Fichiers" puis "DEX => Smali". L'application va nous générer du code Smali à partir de l'application que nous pourrons par la suite modifier.

Image


Une fois l'application décompilée, rendez-vous dans le fichier Product.smali (smali/com/picolo/android/products)

Image Image


Arg plein de code incompréhensible ! Mais non ce qui nous intéresse est vraiment simple. Nous allons tous d'abord chercher la méthode isAvailable trouvez précédemment dans Product.java, elle se trouve de la ligne 43 à 90. Si vous voulez comprendre tout le code vous pouvez toujours suivre un tutoriel pour apprendre le Smali, mais ici ce qui nous intéresse est de retourner forcément vrai mais si les conditions ne sont pas validées. Nous allons donc chercher l'instruction return dans cette fonction, elle se trouve à la ligne 83.

Image


Nous pouvons voir qu'elle retourne la variable v0, nous allons donc faire en sorte que v0 soit tous le temps à vrai, et pour ça rien de plus simple, nous allons rajouter une instruction qui affectera à v0 la valeur vrai. Pour cela nous allons rajouter sur la ligne juste au-dessus l'instruction :
const/4 v0, 0x1


Image


Il faudra ensuite tous simplement tapoter sur le bouton Sauvegarder en bas à gauche, faire retour, et appuyer sur le bouton build. Il vous faudra désinstaller l'ancienne application avant de réinstaller la nouvelle.

Image Image



Étape 3 :

Lancez votre application et vous pourrez voir apparaître les nouveaux modes de jeux !

Image


Il est possible de modifier beaucoup de choses avec l'application APK Editor Pro, je vous laisse le loisir de bidouiller un peu partout dessus pour comprendre son fonctionnement !


Merci d'avoir suivi le tutoriel et n'oubliez pas que si vous appréciez l'application, n'hésitez pas à soutenir les développeurs en achetant le premium, cela permettra de pouvoir évoluer par la suite et de nous proposer un meilleur contenu !

Bonne journée ou soirée ! Loulouw

Dernière édition par Loulouw le 07 Juin 2017, 18:06, édité 1 fois.
Quand t'es geek, tu comprends pourquoi la Peugeot 404 est introuvable...
Avatar de l’utilisateur
Loulouw
Programmeur
 
Messages : 360
Points d'honneur : 135 PH
Inscription : 15 Déc 2012

Message par Patak » 07 Juin 2017, 01:30

Wow génial ! :grin:

Tout ça depuis le smartphone, c'est fou !

Merci pour le tuto !

+20 PH
Avatar de l’utilisateur
Patak
Administrateur
 
Messages : 1153
Points d'honneur : -666 PH
Inscription : 30 Oct 2012

Message par Loulouw » 07 Juin 2017, 06:47

C'est ça qui est génial avec Android ahah !
Quand t'es geek, tu comprends pourquoi la Peugeot 404 est introuvable...
Avatar de l’utilisateur
Loulouw
Programmeur
 
Messages : 360
Points d'honneur : 135 PH
Inscription : 15 Déc 2012

Message par Cryofreeze » 09 Septembre 2018, 10:43

J'ai créé un compte juste pour te remercier car je vais pouvoir tenter de changer de pseudo sur un jeu. x) Mais je pense que c'est nécessaire au vu du peu de retour par rapport au temps que tu as pris pour faire ce post. :p (Mes plus plates excuses si ça fait déterrer un topic de plus d'un an. >_<)

Donc voilà. Merci beaucoup pour ce tuto très clair et détaillé ! ^^
Cryofreeze
Petit nouveau
 
Messages : 1
Points d'honneur : 0 PH
Inscription : 09 Sep 2018

Message par Loulouw » 09 Septembre 2018, 11:21

Merci a toi bon courage pour déverrouiller tes options payantes dans ton appli
Quand t'es geek, tu comprends pourquoi la Peugeot 404 est introuvable...
Avatar de l’utilisateur
Loulouw
Programmeur
 
Messages : 360
Points d'honneur : 135 PH
Inscription : 15 Déc 2012

Message par mistacaps » 28 Septembre 2018, 15:15

Bonjour,

Je vais m'empressé de tester cette méthode, cela fait des semaines que je bataille a essayer de comprendre comment certaines personnes s'y prennent pour réussir ce genre de prodige, vous l'aurez compris, toutes mes tentatives ont été pour l'instant infructueuse, mais cette fois-ci je le sens bien ^^
mistacaps
Petit nouveau
 
Messages : 1
Points d'honneur : 0 PH
Inscription : 28 Sep 2018


Retour vers Java