Articles

How To Reverse Engineer An Android Application In 3 Easy Steps

Varun Dwarkani
Varun Dwarkani

Follow

Sep 12, 2020 · 3 min read

Reverse Engineer Android Application

Many beginners or even intermediate Android developers fail to realize that the Android app ils construisent et expédient peuvent être rétro-conçus dans une plus grande mesure. Si vous êtes l’un des développeurs qui pensent coder en dur des clés secrètes ou même les stocker dans la construction.le fichier gradle l’empêchera d’entrer entre les mains de pirates informatiques ou d’autres développeurs, vous avez tort.

La sécurité n’a jamais été facile et la toute première règle est de ne jamais faire confiance à la sécurité côté client. Le côté client n’est pas un environnement que nous contrôlons et nous ne devons donc pas nous y fier en codant en dur ou en stockant des secrets susceptibles de perturber notre système. Donc, la meilleure façon de vous assurer que vous ne finissez pas par vous faire prendre par les développeurs et les pirates est de désosser l’application par vous-même et de résoudre les problèmes si possible.

Incident intéressant – Une fois que je travaillais sur une application Android qui nécessitait une formule mathématique pour être utilisée dans une fonctionnalité. N’aimant pas les mathématiques au fond, j’ai trouvé plus facile et intéressant de désosser l’une des applications concurrentes, puis j’ai sorti la formule mathématique du code avec succès! :p

Alors, commençons. Pour la rétro-ingénierie d’une application, nous aurions besoin de quelques choses au préalable —

  1. APK de l’application.
  2. Un ensemble de codes à exécuter.
  3. Outil de décompilation Java (JD JUI dans cet article) pour afficher le code décompilé.

Compréhension de base de l’application Android. Source – Pranay Airan.

Nous aurions besoin de l’APK de l’application que nous voulons reverse-engineering. Il y a plusieurs façons de le faire, mais je vais suggérer un moyen simple ici. Téléchargez l’application Apk Extractor sur votre appareil et sélectionnez l’application dans la liste à l’intérieur de l’application. Une fois cela fait, ouvrez n’importe quel Explorateur de fichiers et accédez au dossier ExtractedApks présent dans le répertoire de stockage interne. Vous y trouverez l’APK. Copiez cet APK sur votre système et nous procéderons aux étapes ci-dessous.

Deuxième étape –

Une fois que nous aurons l’APK, nous l’inverserons pour connaître et voir le code. Cela nous permettra et nous donnera un aperçu de la structuration du code ainsi que des mesures de sécurité qu’ils ont prises pour éviter de faire face à une attaque de rétro-ingénierie.

Ici, nous allons renommer notre {app}.fichier apk à {app}.zip et extrayez-le. Dans le dossier extrait, nous trouverons les classes.fichier dex qui contient le code de l’application.

Un fichier DEX est un fichier exécutable qui contient le code compilé et s’exécute sur la plate-forme Android.

Maintenant, nous allons utiliser les classes.fichier dex que nous avons pris à partir du fichier ZIP APK et le convertir en JAR. Pour ce faire, nous pouvons utiliser l’outil open-source ‘dex2jar’ disponible ici. Rendez-vous dans la section release et téléchargez le dernier fichier zip disponible et extrayez-le. Copiez les classes extraites.fichier dex et collez-le dans le répertoire ‘dex2jar-x.x’.

Ouvrez Terminal sur votre machine et dirigez-vous vers le répertoire ‘dex2jar-x.x’. Maintenant, nous allons exécuter la commande –

d2j-dex2jar.cours de chauve-souris.dex

Cela convertira les classes.fichier dex dans un fichier JAR que nous pouvons afficher à l’aide de n’importe quel outil de décompilation.

Troisième étape –

Nous utiliserons JD JUI qui est un simple outil de décompilation Java. Vous pouvez l’obtenir d’ici. Téléchargez et extrayez le zip. Exécutez le jd-gui.exe et ouvrez le fichier dex et le tour est joué! Nous avons repensé l’application !!

Application Android décompilée Code source