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 sie bauen und versenden, können in größerem Maße rückentwickelt werden. Wenn Sie einer der Entwickler sind, die daran denken, geheime Schlüssel fest zu codieren oder sogar im Build zu speichern.gradle-Datei wird verhindern, dass es in die Hände von Hackern oder anderen Entwicklern geht, du liegst falsch.

Sicherheit war noch nie so einfach und die allererste Regel ist, niemals der Sicherheit auf der Clientseite zu vertrauen. Die Clientseite ist keine Umgebung, die wir kontrollieren, und daher sollten wir uns nicht darauf verlassen, indem wir Geheimnisse fest codieren oder speichern, die unser System stören können. Der beste Weg, um sicherzustellen, dass Sie nicht von Entwicklern und Hackern erwischt werden, besteht darin, die Anwendung selbst zurückzuentwickeln und die Probleme nach Möglichkeit zu beheben.

Interessanter Vorfall — Einmal arbeitete ich an einer Android-Anwendung, für die eine mathematische Formel in einem Feature verwendet werden musste. Ich mochte Mathematik im Kern nicht, fand es einfacher und interessanter, eine der Wettbewerbsanwendungen zurückzuentwickeln, und nahm dann die mathematische Formel erfolgreich aus dem Code! :p

Also, fangen wir an. Für das Reverse Engineering einer Anwendung benötigen wir vorher ein paar Dinge —

  1. APK der Anwendung.
  2. Einige auszuführende Codes.
  3. Java Decompiler Tool (JD JUI in diesem Artikel), um den dekompilierten Code anzuzeigen.

Grundlegendes Verständnis der Android App. Quelle – Pranay Airan.

Wir würden die APK der Anwendung benötigen, die wir zurückentwickeln möchten. Es gibt viele Möglichkeiten, dies zu tun, aber ich werde hier einen einfachen Weg vorschlagen. Laden Sie die App Apk Extractor auf Ihr Gerät herunter und wählen Sie die Anwendung aus der Liste in der Anwendung aus. Öffnen Sie anschließend einen beliebigen Datei-Explorer und wechseln Sie zum Ordner ExtractedApks im Verzeichnis Interner Speicher. Dort finden Sie die APK. Kopieren Sie diese APK auf Ihr System und wir werden mit den folgenden Schritten fortfahren.

Zweiter Schritt –

Sobald wir die APK haben, werden wir sie umkehren, um den Code zu kennen und zu sehen. Dies ermöglicht uns und gibt uns Einblicke in die Strukturierung des Codes sowie in die Sicherheitsmaßnahmen, die sie ergriffen haben, um einen Reverse-Engineering-Angriff zu vermeiden.

Hier werden wir unsere {app} umbenennen.apk-Datei zu {app}.zip und extrahieren Sie es. Im extrahierten Ordner finden wir die Klassen.dex-Datei, die den Anwendungscode enthält.

Eine DEX-Datei ist eine ausführbare Datei, die den kompilierten Code enthält und auf der Android-Plattform ausgeführt wird.

Jetzt werden wir die Klassen verwenden.dex-Datei, die wir aus der APK-Zip-Datei genommen und in JAR konvertiert haben. Dafür können wir das Open-Source-Tool ‚dex2jar‘ verwenden, das hier verfügbar ist. Gehen Sie zum Abschnitt Release und laden Sie die neueste verfügbare Zip-Datei herunter und extrahieren Sie sie. Kopieren Sie die extrahierten Klassen.dex-Datei und fügen Sie sie in das Verzeichnis ‚dex2jar-x.x‘ ein.

Öffnen Sie das Terminal auf Ihrem Computer und gehen Sie zum Verzeichnis ‚dex2jar-x.x‘. Jetzt werden wir den Befehl ausführen –

d2j-dex2jar.bat-Klassen.dex

Dadurch werden die Klassen konvertiert.dex-Datei in eine JAR-Datei, die wir mit jedem Decompiler-Tool anzeigen können.

Dritter Schritt —

Wir werden JD JUI verwenden, ein einfaches Java-Decompiler-Tool. Sie können es von hier bekommen. Laden Sie die ZIP-Datei herunter und extrahieren Sie sie. Führen Sie die jd-GUI aus.exe und öffnen Sie die DEX-Datei und Voila! Wir haben die Anwendung rückentwickelt!!

Dekompilierter Android-App-Quellcode