Mit Hilfe von einem APK Decompiler wie z.B. "jadx - Dex to Java decompiler" ist es möglich eine kompilierte Android App wieder zurück in den Source Code umzuwandeln. Dies ist oft der erste Schritt um im Quellcode sensible Informationen (z.B. Passwörter eines Admin-Accounts oder Zugangsdaten zu Datenbanken bzw. Schnittstellen) zu finden.
Des Weiteren ist es möglich die Funktionsweise bzw. Programmierung der jeweiligen App genauer nachvollziehen umso IT-Security Schwachstellen zu finden.
Die APK (Android Package Kit) Datei der Android App wird benötigt
Um an die Datei zu kommen, gibt es verschieden Möglichkeiten:
- APK Datei vom Smartphone auf PC kopieren mit Hilfe von ADB, wie man die Android Debug Bridge installieren kann, hatte ich bereits in einem älteren Artikel ABD Installation Amazon Fire-Tablet - Spezialangebote (Werbung) entfernen beschrieben.
- adb shell pm list packages (z.B. "com.example.appname")
- adb shell pm path com.example.appname (Pfadnamen der App anzeigen)
- adb pull /data/app/com.example.appname-2.apk D:\Downloads
- Installierte Apps im Total Commander anzeigen und auf die SD-Karte oder WebDAV kopieren.
- Mit Hilfe von Sideloading die Android-App aus einem anderen Marketplace herunterladen.
Update 05.06.2022
APK-Quellen im Internet:
- APKMirror - https://www.apkmirror.com/
- APK Downloader - https://apk-dl.com/
- APKPure - https://apkpure.com/de/
- APKDownload - https://apkdownload.com/
Dekompilieren
Mit einem Dekompilier wandelt man den Bytecode (Maschinen- oder Objektcode) wieder lesbaren Quellcode in eine höhere Programmiersprache um. Dabei wird versucht, den Vorgang des Kompilierens umzukehren und den Quellcode wieder bestmöglich herzustellen.
Hinweis: Das Dekompilieren darf nicht mit dem Disassemblern verwechselt werden, denn die Assemblersprache ist nur eine andere Darstellung des kompilierten Maschinencodes!
Dekompilieren einer APK Datei mit jadx => JAVA
Update 05.06.2022
- dex2jar Releases - Konverter, um DEX- bzw. APK- in JAR-Dateien umzuwandeln.
- Java Decompiler - Der Java-Dekompiler „JD“.
- CFR - another java decompiler - Der Java-Dekompiler „CFR“.
Die APK Datei wird mit Hilfe von jadx direkt in die entsprechenden Java-Dateien umgewandelt.
Download des aktuellen Release von github: https://github.com/skylot/jadx/releases/latest
Am einfachsten verwendet man "jadx" mit einer grafischen Benutzeroberfläche. Der Start erfolgt mit der Datei jadx-gui-1.2.0.exe . Anschließend wählt man im Fenster die APK Datei aus, welche dekompiliert werden soll.
Wurde die Datei ausgewählt, dekompiliert jadx sie und stellt auf der linken Seite der Anwendung alle Java-Pakete und -Dateien der APK aufgelistet bereit. Hinweis: Verwendet die App als native Code Basis Cordova, basiert die App selbst auf Javascript (der Quellcode befindet sich in dann unter Resources / Assets / www).
Jetzt ist es möglich nach sensiblen Informationen z.B. http(s)://, passw, key, user, rsa, aes, sslsocket und secret zu suchen.
Dekompilieren per Webseite
Zum Beispiel die Webseiten http://www.decompileandroid.com/ und http://www.javadecompilers.com/apk bieten das Dekompilieren als Online-Service an.
Keine Kommentare:
Kommentar veröffentlichen