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

App - Sourcecode sicher bzw. schützen?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von funcoder, 17.08.2010.

  1. funcoder, 17.08.2010 #1
    funcoder

    funcoder Threadstarter Erfahrener Benutzer

    Beiträge:
    218
    Erhaltene Danke:
    38
    Registriert seit:
    15.08.2009
    Hallo Zusammen,

    Normalerweise, wenn ein App aus dem Market vom Handy installiert wird bekommt der Benutzer die eigentliche apk file ja nie zu sehen.
    Wenn ich allerdings mein App Beta Testern zu Verfügung stellen möchte, muss ich ja wohl die signierte apk file direkt bereitstellen.

    Meine Frage ist daher: Ist es möglich aus der apk File wieder Java Code zu generieren. Bzw. wie kann man sich davor effektiv schützen?

    Habt ihr hierfür irgedwas unternommen?

    Danke schonmal!
    C0der
     
  2. Kranki, 17.08.2010 #2
    Kranki

    Kranki Ehrenmitglied

    Beiträge:
    3,831
    Erhaltene Danke:
    814
    Registriert seit:
    19.07.2009
    Tablet:
    Samsung Galaxy Tab 3 7.0 Lite
    Die APK kriegt der Nutzer sowieso, da kannst du nichts gegen unternehmen.
    Ein Decompiler, der Java-Code erzeugt, ist mir allerdings nicht bekannt. Ich kenn in dem Bereich nur baksmali, und da kommt kein Java bei raus.
     
  3. manu, 17.08.2010 #3
    manu

    manu Fortgeschrittenes Mitglied

    Beiträge:
    329
    Erhaltene Danke:
    25
    Registriert seit:
    29.03.2009
    Phone:
    Galaxy Nexus
    Man kann es decompilen. Strings (Passwörter, URLs, Benutzernamen) die man nutzt um sich beispielsweise zu einer Website zu verbinden sind dann in Klartext lesbar. Der Sourcecode ist auch einigermaßen verständlich. Jedoch handelt es sich dabei nicht um Java. Die Anwendung muss schon sehr genial sein, damit sich der Aufwand lohnt diesen katastrophalen, decompilten Code zu lesen.


    Gruß Manu
     
  4. the_alien, 17.08.2010 #4
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    In normalen Java Applikationen wird auch gerne ein Scrambler eingesetzt der Klassen, Methoden und Variablen umbenennt. So ist ein
    Code:
    A a = new A();
    a.a(b);
    deutlich schlechter verständlich als ein
    Code:
    BackendConnection connection = new BackendConenction();
    connection.login(password);
     
  5. funcoder, 18.08.2010 #5
    funcoder

    funcoder Threadstarter Erfahrener Benutzer

    Beiträge:
    218
    Erhaltene Danke:
    38
    Registriert seit:
    15.08.2009
    Dankeschön!
    Na wenn der Aufwand ziemlich hoch ist und man noch nicht einmal direkt wiederverwendbaren Code bekommt, brauch ich mir da wohl keine Sorgen machen ;)

    c0der
     
  6. Extremefall, 26.02.2013 #6
    Extremefall

    Extremefall Android-Hilfe.de Mitglied

    Beiträge:
    83
    Erhaltene Danke:
    1
    Registriert seit:
    29.03.2012
    Falsch, wenn der Nutzer die APK Datei hat, lässt sich mit dem Programm dextoJar kinderleicht eine dex Datei in eine Jar Datei umwandeln und mittels jdGUI erhältst du dann den Java Quellcode. Die dex Datei erhält man schon, wenn man die Dateiendung der APK Datei ändert. Also ist es wirklich leicht auslesbar.
     
    GENiALi bedankt sich.
  7. Fr4gg0r, 26.02.2013 #7
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    lol nein
     
  8. lunifrw, 26.02.2013 #8
    lunifrw

    lunifrw Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    25.02.2013
    also habe das an meine eigene app mal getestet das funktioniert echt kann man das nicht verschleiern oder so das es nicht mehr möglich ist?

    naja wenn man eine andere app von play.google ladet (mit handy) denn istalliert er se ja gleich also hat man so ja keine chance an der .apk zu kommen oder kommt man da auch so ran?
     
  9. blackfire185, 26.02.2013 #9
    blackfire185

    blackfire185 Gewerbliches Mitglied

    Beiträge:
    561
    Erhaltene Danke:
    39
    Registriert seit:
    18.06.2011
    Naturlich sogar ohne root. Dafür gibts sogar apps und man kann die apk über das dateiverzeichnis finden

    Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
     
  10. lunifrw, 26.02.2013 #10
    lunifrw

    lunifrw Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    25.02.2013
    achso gut ok wusste ick ne bin anfänger in android
     
  11. Peter123, 26.02.2013 #11
    Peter123

    Peter123 Android-Hilfe.de Mitglied

    Beiträge:
    103
    Erhaltene Danke:
    7
    Registriert seit:
    13.11.2010
    Wie schon gesagt zum Beispiel durch die Veränderung von Variablen und Klassennamen:

    Code:
    A a = new A();
    a.a(b);
    Eventuell auch über native Entwicklung, da dort mit .dll´s gearbeitet werden kann...da bin ich mir auch nicht sicher.
     
  12. DieGoldeneMitte, 26.02.2013 #12
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Ein solcher Scrambler namens Proguard ist beim Android SDK gleich dabei. Den sollte man schon nutzen.

    Wenn man dann noch geheime Strings wie Passworter nicht als Klartext-Strings im Code hinterlegt, sondern beim Start on-the-fly dekodiert (da tuts schon ein xor oder so), dann hat man erstmal genug getan.

    Der nächste Schritt wäre dann, relevante Funktionsaufrufe mit Reflection zu verbergen, echte Verschlüsselung und Funktionalität auf Server auszulagern, aber da wird es schon aufwändig. Man sollte seine Energie lieber in gute Programme stecken, als sie in der Abwehr von Hackern zu verbrennen.
     
    Zuletzt bearbeitet: 27.02.2013
    GENiALi bedankt sich.

Diese Seite empfehlen