ProgHelp

Une communauté intelligente et active

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

http://louiszwawiak.fr
Avatar de l’utilisateur
Loulouw
Programmeur
 
Messages : 355
Points d'honneur : 125 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
Image


SPOILER : AFFICHER


Avatar de l’utilisateur
Patak
Administrateur
 
Messages : 1143
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...

http://louiszwawiak.fr
Avatar de l’utilisateur
Loulouw
Programmeur
 
Messages : 355
Points d'honneur : 125 PH
Inscription : 15 Déc 2012


Retour vers Java

cron
  • Qui est en ligne ?
  • Consulter les nouveaux messages
  • Consulter les messages sans réponse
  • Au total, il y a 0 utilisateur en ligne :: 0 inscrit, 0 invisible et 0 invité (basé sur le nombre d’utilisateurs actifs des 5 dernières minutes)
  • Le nombre maximum d’utilisateurs en ligne simultanément a été de 272 le 12 Mars 2015, 03:11
  • Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 0 invité(s)