1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

String Values entschlüsseln

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Trancegott, 14.02.2012.

  1. Trancegott, 14.02.2012 #1
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    0
    Registriert seit:
    12.02.2012
    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
     
  2. manu, 14.02.2012 #2
    manu

    manu Fortgeschrittenes Mitglied

    Beiträge:
    329
    Erhaltene Danke:
    25
    Registriert seit:
    29.03.2009
    Phone:
    Galaxy Nexus
    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.
     
    Trancegott bedankt sich.
  3. Trancegott, 14.02.2012 #3
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    0
    Registriert seit:
    12.02.2012
    scheiße, ich glaub für das NDK reichen meine C skills nicht aus XD
     
  4. manu, 14.02.2012 #4
    manu

    manu Fortgeschrittenes Mitglied

    Beiträge:
    329
    Erhaltene Danke:
    25
    Registriert seit:
    29.03.2009
    Phone:
    Galaxy Nexus
    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.
     
  5. Fr4gg0r, 14.02.2012 #5
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Wenn der string in einem stück vorkommt, kriegste das auch aus nativ kompiliertem code wieder raus.
     
    Trancegott bedankt sich.
  6. Trancegott, 14.02.2012 #6
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    0
    Registriert seit:
    12.02.2012
    was meint ihr mit "zur laufzeit entschlüsseln"?
     
  7. Trancegott, 14.02.2012 #7
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    0
    Registriert seit:
    12.02.2012
    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?
     
  8. Fr4gg0r, 14.02.2012 #8
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    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?..
     
  9. Tom299, 15.02.2012 #9
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    ich hab den Proguard noch nicht ausprobiert, aber macht er nicht auch Strings unkenntlich?
     
  10. sixi, 15.02.2012 #10
    sixi

    sixi Erfahrener Benutzer

    Beiträge:
    237
    Erhaltene Danke:
    64
    Registriert seit:
    20.01.2009
    Nein, tuts nicht...
     
  11. the_alien, 15.02.2012 #11
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    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 ;)
     

Diese Seite empfehlen