String Values entschlüsseln

T

Trancegott

Neues Mitglied
0
Hallo,
ich habe eine App (nur zum Spaß) programmiert, die sich mit einem FTP server verbindet. Ich habe das Passwort alá
Code:
client.login("usr_ftp_173803_0", "nhjkk67nhj");
einfach im quelltext stehen.

Ein Freund von mir hat sich den spaß gemacht, den Quelltext aus der .apk zu holen (geht ja anscheinend total einfach) um mich ein bisschen zu ärgern :)

Jetzt wollte ich wissen, ob man (wenn ich das Passwort als String Resource speichere) eine String-Resource auch so leicht auslesen kann. Ich weiß, das es bei dem Ordner drawables geht, aber auch bei Values?


Würde mich freuen wenn mir das jemand sagen kann :)

Gruß Thomas
 
Ja, geht genauso leicht. Egal, wo der String steht. Geht überall recht einfach auszulesen. Alternativ könntest du mit dem NDK in C eine Bibliothek schreiben, die den String ausgibt. Kann man dann nicht mehr so leicht lesen.

Oder du verschlüsselst den String und entschlüsselst zur Laufzeit. Ist dann schon mehr Aufwand und schreckt manchen ab.
 
  • Danke
Reaktionen: Trancegott
scheiße, ich glaub für das NDK reichen meine C skills nicht aus XD
 
Dann kannst dir etwas einfallen lassen, wie du den String in Java versteckst.

Gibt diverse Möglichkeiten:
- An verschiedenen Stellen zusammensetzen
- Zur Laufzeit entschlüsseln
- ....

Du musst dir eigentlich nur überlegen, wie viel Aufwand ist es, um hinter den String zu kommen? Lohnt sich das für den potentiellen Angreifer?
Wenn es zu lange dauern würde, dann ist es relativ sicher. Passwörter funktionieren nicht anders.
 
manu schrieb:
Ja, geht genauso leicht. Egal, wo der String steht. Geht überall recht einfach auszulesen. Alternativ könntest du mit dem NDK in C eine Bibliothek schreiben, die den String ausgibt. Kann man dann nicht mehr so leicht lesen.

Oder du verschlüsselst den String und entschlüsselst zur Laufzeit. Ist dann schon mehr Aufwand und schreckt manchen ab.

Wenn der string in einem stück vorkommt, kriegste das auch aus nativ kompiliertem code wieder raus.
 
  • Danke
Reaktionen: Trancegott
was meint ihr mit "zur laufzeit entschlüsseln"?
 
ich hab den code grad extrahiert, und da steht nur
Code:
    String str = getResources().getString(2130968577);
    FileInputStream localFileInputStream = openFileInput("daten.txt");
    this.client.connect("bitchapp.cwsurf.de");
    this.client.login("usr_ftp_173803_0", str);
    this.client.storeFile("daten.txt", localFileInputStream);
    this.client.logout();
    localFileInputStream.close();
also kein passwort oder etwa doch?
 
Aapt generiert ein xml File, public.xml, in dem du nun unter der Zahl ein Verweis auf die strings.xml findest. (Alle .xml Dateien werden von aapt "kompiliert" und sind deshalb erstmal nicht lesbar, apktool kann sie wieder in eine lesbare Form bringen.)
Ist das nicht auch logisch?..
 
ich hab den Proguard noch nicht ausprobiert, aber macht er nicht auch Strings unkenntlich?
 
Nein, tuts nicht...
 
Hart kodierte Passwörter lassen sich eigentlich immer irgendwie auslesen. Einfacher wäre es wenn du zur Eingabe des Passwortes aufrufst, dann kriegt es nicht jeder der die APK bekommt ;)
 

Ähnliche Themen

W
Antworten
16
Aufrufe
838
jogimuc
J
kukuk
Antworten
9
Aufrufe
1.172
kukuk
kukuk
benj98
  • benj98
Antworten
4
Aufrufe
1.263
benj98
benj98
Zurück
Oben Unten