Hack-IT: Reverse Engineering einer Android App

2017-09-28 von admin

Bei diesem Hack-IT geht es um eine Android App, welche im Google Play Store erhältlich ist. Die Aufgabe besteht darin, dass einzugebende Passwort in der App herauszufinden.

Link zur App: https://play.google.com

 

Schritt 1

Für eine Analyse der App muss diese heruntergeladen werden. Dafür gibt es zahlreiche Tools, ich habe die Website apkpure.com verwendet. Im Suchfeld auf der Seite die Adresse der App eingeben und danach den „Download“ Button betätigen. Daraufhin steht die APK Datei zur Verfügung.

 

Schritt 2

Mit der Software dex2jar können DEX Dateien in JAR Dateien umgewandelt werden. Nach dem Download der Software sourceforge.net/projects/dex2jar/ wird das Archiv noch entpackt

unzip dex2jar-2.0.zip

und Rechte vergeben.

chmod -R +x dex2jar-2.0/

Schritt 3

Jetzt kann die APK Datei umgewandelt werden.

./dex2jar-2.0/d2j-dex2jar.sh CanYouHack.apk

Danach steht die Datei „CanYouHack-dex2jar.jar“ zur Verfügung.

Schritt 4

Als nächstes das Programm JD-GUI (jd.benow.ca) herunterladen, mit welchem der Inhalt der JAR Datei ganz einfach angeschaut werden kann.

Daraufhin heißt es suchen, in der Klasse „Mobile1“ wird der hilfreiche Text „… right password!“ aufgeführt.

Die IF-Anweisung darüber verrät uns das gesuchte Passwort:

if (paramAnonymousView.getText().toString().equals("1337"))

Das gesuchte Passwort lautet: 1337 und das Hack-IT ist gelöst.

Kategorie: IT Schlagwörter: , , , , ,

Hack-IT: Reverse Engineering – Geheimzahl

2016-11-12 von admin

Bei diesem Hack-IT liegt eine Binärdatei vor, welche unter Linux ausführbar ist und mit der Programmiersprache C erstellt wurde.

Nach der Ausführung soll eine Geheimzahl eingegeben werden. Wird die falsche Zahl eingegeben, so erscheint die Meldung „Falsch!“.

re01

Eine Möglichkeit, die richtige Zahl herauszufinden, wäre es, einfach ein Skript zu erstellen, welches alle Möglichkeiten durchprobiert. An dieser Stelle soll ein anderer eleganterer Weg dargestellt werden.

Mit dem GNU Debugger (GDB) kann das Programm in Maschinencode umgewandelt bzw. angezeigt werden. Dafür in der Konsole folgenden Befehl verwenden:

gdb hackme.o

Als nächstes im gdb folgende Einstellung setzen:

set disassembly-flavor intel

Dadurch wird eine bessere „Lesbarkeit“ der Speicheradressen gewährleistet.

re02

Als nächstes mit dem Befehl

disass main

die Main Methode des Programms disassemblieren. Daraufhin erscheint der Inhalt der Methode in Maschinencode.

re03

In C werden Eingaben durch den User klassisch durch die Funktion „scanf“ realisiert. Die Verwendung der Funktion

ist unter „call 0x4004f0 <__isoc99_scanf@plt>“ zu finden.

re04

Nach der Eingabe muss der eingegebene Wert in einen Speicherbereich verschoben werden (die nachfolgende Zeile). An dieser Stelle wird es spannend, da als nächstes ein Vergleich folgt. Ist der Vergleich richtig, erhalten wir eine Erfolgs- oder Fehlermeldung.

Es wird die Speicheradresse mit dem Wert „0x539“ verglichen. Dabei handelt es sich um einen Hexadezimalwert. Einfach mit einem Taschenrechner umwandeln und die Lösung ist gefunden.

re05

 

Download: Geheimzahl.zip

Kategorie: IT Schlagwörter: , , ,