App - Sourcecode sicher bzw. schützen?

F

funcoder

Fortgeschrittenes Mitglied
39
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
 
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.
 
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
 
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);
 
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
 
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.
 
  • Danke
Reaktionen: GENiALi
lol nein
 
Extremefall schrieb:
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.

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?
 
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
 
achso gut ok wusste ick ne bin anfänger in android
 
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.
 
the_alien schrieb:
In normalen Java Applikationen wird auch gerne ein Scrambler eingesetzt der Klassen, Methoden und Variablen umbenennt.

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:
  • Danke
Reaktionen: GENiALi

Ähnliche Themen

S
Antworten
33
Aufrufe
2.657
Sempervivum
S
M
Antworten
3
Aufrufe
149
moin
M
Manny87
  • Manny87
Antworten
11
Aufrufe
161
swa00
swa00
Zurück
Oben Unten