Java Dateien verschlüsseln?

G

Gast2

Gast
Hm, das kann man doch auf den entsprechenden Seiten alles nachlesen.

Man nehmen beispielsweise mal ProGuard (erster Google Treffer): ProGuard
-> Manual -> Usage: ProGuard

Gibts danach immer noch Unklarheiten?
 
Naja, sagen wir mal, Englisch ist nicht so mein Ding.. Vor allem aber wäre es halt toll, wenn man irgendwo eine "vereinfachte" Anleitung kriegen würde - Schließlich will ich es nur "obfuscaten", und dieses ProGuard scheint ja noch viiel mehr zu machen xD
 
G

gst

Gast
Naja, wenn du dich dermaßen für deinen Code schämst dann solltest du deine Zeit nicht mit Verschleierung vergeuden sondern lieber das Programmieren üben.
 

Noctarius

Top Contributor
Sagen wir mal so "mal eben obfuskieren" geht nicht. Sobald ein Programm etwas komplizierter wird muss man sich mit dem Obfuscator auseinander setzen und entsprechend Flags deaktieren oder Klassen für bestimmte Aktionen ausschließen.
 
S

Spacerat

Gast
Für genialen Code muss man sich nicht schämen, den muss man härter verschlüsseln, als mit simpler Obfuscation. Z.B. mit nem eigenen ClassLoadern die die Class-Dateien mit RSA ver- und entschlüsseln. Bei den Geschichten muss man sich schon sehr anstrengen um überhaupt an Quelltext zu kommen. Allerdings muss man sich auch ebenso anstrengen, um es zu realisieren.
 
Zuletzt bearbeitet von einem Moderator:

Kevin94

Top Contributor
Was soll es denn bringen, die .class Dateien zu verschlüsseln? Irgendwo muss doch der Schlüssel unautoriziert zugänglich sein, und der ClassLoader selber ist auch nicht verschlüsselt. Wenn jemand sich also den Code des ClassLoader anschaut, sich den Schlüssel auf die selbe Weise wie das Programm hohlt und dann einfach die .class Dateien entschlüsselt, war die ganze Mühe um sonst. Da macht es doch deutlich mehr Arbeit sich durch Obfuscation zu wühlen.
Sinn macht das nur, wenn die .class Dateien von einem Webserver entschlüsselt werden, aber das hätte eine miserable Performence zur Folge.
 
M

Marcinek

Gast
Es gibt JREs, die verschlüsselte Archive entschlüsseln und ausführen.

Da dies dann kein Java Code mehr ist, ist es deutlich schwerer an den Schlüssel zu kommen.

Ich hatte mal ein Link einer Firma, die das anbietet, finde ich gerade aber nicht.
 

turtle

Top Contributor
Wie hier bereits angemerkt wurde, stellt eine Software-Verschlüsselung mit Java nur eine Verzögerung fürs Knacken dar, da der Java-Code eh verifiziert werden MUSS und dies gelingt nur mit dem reinen unverfälschten Bytecode.

Es gibt aber Dongles, die dies recht praktisch anbieten. Hier fällt mir der Wibukey ein.
 
T

trööhööt

Gast
Moin!

ich hätte da ne Frage: Wie kann ich Java Dateien verschlüsseln? Also dass man beim dekompilieren nichts mehr erkennt.

MfG

"verschlüsseln" geht schon mal überhaupt nicht ... denn die VM muss den code ja lesen können ... ergo : zur runtime muss es entschlüsselt werden ... und dafür muss es irgendwo un-verschlüsselt eine info geben wie dies abläuft ... und dabei ist es egal ob man direkt einen schlüssel mit nem passenden class-loader findet oder lediglich liest das die daten über einen server laufen ... ergebnis ist gleich : zur runtime liegen die daten un-verschlüsselt im RAM da die VM ja mit arbeiten muss ...


"obfuscation" ... oder auf deutsch : "sicherheit durch unwissenheit" ist eine der wohl meistgenutzen verfahren um etwas zu schützen ... und dennoch ist es gleichzeitig eines der wohl anfälligsten ...
wenn wir dieses prinzip mal nur auf java beschränken kann man nur das gleiche sagen wie oben : es muss zur runtime code zur verfügung stehen mit der die VM etwas anfangen kann ...
natürlich gibt es bei der byte-code obfuscation möglichkeiten die dafür sorgen das z.b. daraus de-compileter source so nicht mehr re-compilebar ist ... oder man nutzt gewisse eigenheiten eines systems aus (unter win z.b. kann man keine datei mit dem namen "aux.class" erstellen ... dafür aber direkt in ein archiv schreiben > kann also nicht entpackt werden um "normalen" de-compilern angriffsfläche zu bieten) ...
grundsätzlich lässt sich aber sagen : das was man aus dem de-compiler code rausbekommt ist zwar SCHWER zu lesen ... aber nicht 100% sicher UNLESBAR ...


grundsätzliche "sicherheit" von daten gibt es so in java nicht ... und auch in keiner anderen sprache die ich kenne ... und es gibt auch genug beispiele im wahren leben die zeigen das sowas nicht wirklich funktioniert ... und trotzdem versuchen und tun es einige ...


um auf deine frage zurückzukommen, ob und wie es möglich ist java-daten so zu editieren das man diese nicht wieder sinnvoll herstellen kann, gibt es eine klare antwort : das geht einfach nicht ... zumindest nicht so lange es eine standard-VM noch ausführen soll
 
T

trööhööt

Gast
Du kannst deine Java Anwendung auch komplett nativ kompilieren, sodass gar kein Java mehr zur Ausführung benötigt wird.

Desktop, Server, Embedded Java SE Implementations - Excelsior

Da kann man natürlich keinen Code mehr draus machen.

sorry ... aber mit einem wort "LOL" ...

du weist schon das man auch native-code wieder in halbwegs verständlichen source umwandeln kann .. oder ?

außerdem : ob nun ein virtueller cpu mit seinem befehlsatz etwas macht oder ein nativer cpu mit seinem ... wenn man sich tief genug mit sowas beschäftigt braucht man keinen source mehr ...

wirklich ... aber der post gehört in die kategorie : "schnkelklopfer für beinlose" ...
 
S

Spacerat

Gast
Naja... "ES GEHT NICHT" ist in Sachen Softwareentwicklung relativ unmöglich. Relativ, weil bei SW Sicherungen, kann man es einem wirklich nur schwerer machen.
Ein normaler ClassLoader benötigt ein Bytearray des Bytecodes der zu ladenden Klasse. Wo dieses Array aber herkommt ist ihm dabei relativ schnurz. Evtl. aus einer Container-Klasse, die beim Initialisieren erstens eine Signatur ihres Classloaders abfragt und zweitens die Klasse nur entschlüsselt, wenn der Bytecode in einem gewissen Zeitrahmen abverlangt wird. Wenn man das Ganze noch native realisiert, hat man beim Debuggen in Eclipse schon mal ganz schlechte Karten, bleibt nur noch IDA-Pro oder ähnliches.
Der einzige Schlüssel, der dazu veröffentlicht werden muss ist der RSA-PublicKey. Evtl. käme man damit tatsächlich sogar an den Bytecode, das bringt einem aber nichts, weil man ihn mangels RSA-PrivateKey schlecht ändern kann. Selbiges gilt auch für die Signatur des ClassLoaders
 
Zuletzt bearbeitet von einem Moderator:

Noctarius

Top Contributor
Natürlich muss nur der PublicKey freigegeben werden aber zum Entschlüsseln reicht der. Du kannst danach nur keinen geänderten Source mehr passend zum PK verschlüsseln.
 
S

Spacerat

Gast
@Noctarius: Was war PK doch gleich? Private- oder PublicKey? :)

Davon mal ab... Es ist immer die Frage, welche Beweggründe man hat, seine Daten zu verschlüsseln. Einer wäre, dass wirklich niemand darauf kommen soll, wie sein ach so geheimer Algo im einzelnen funktioniert - das kann man schlicht vergessen. Ein anderer wäre, wenn man seine Software zu Geld machen will und sich deswegen ein recht ausgeklügeltes Ladesystem mit Lizenzverwaltung erdenkt und entwickelt. Ob da jemand an Code kommt, den er ohnehin nicht ändern kann, ist dann mehr oder weniger egal.
 

Noctarius

Top Contributor
PK = PubKey (stimmt war dumme Abkürzung ^^)

Wenn ich meine Software gegen unerlaubte Benutzung schützen will würde ich Dongles nutzen (Wibu z.B., wurde auch schon genannt).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Java findet plötzlich die Dateien im Projekt nicht mehr. Java Basics - Anfänger-Themen 12
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2
S Dateien mit Java verschieben Java Basics - Anfänger-Themen 6
J *.sql Dateien in Java Java Basics - Anfänger-Themen 1
P Compiler-Fehler .java Dateien kompilieren und .class Dateien zur .jar Java Basics - Anfänger-Themen 4
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4
T Java Projekt als runnable jar file exportieren inklusive csv Dateien Java Basics - Anfänger-Themen 4
FrozeTee .java Dateien unter Windows 7 werden nicht angezeigt Java Basics - Anfänger-Themen 7
A Mit Java Dateien erstellen Java Basics - Anfänger-Themen 23
J aus .jar die .java Dateien gewinnen? Java Basics - Anfänger-Themen 8
P Problem :Java-Dateien in einem Ordner ablegen Java Basics - Anfänger-Themen 10
2 Input/Output In Java Dateien öffnen/bearbeiten? Java Basics - Anfänger-Themen 9
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
K OOP duplicate class, öffentliche Klasse in unterschiedlichen Java Dateien speichern? Java Basics - Anfänger-Themen 3
S Lesen und Schreiben von Dateien in Java Java Basics - Anfänger-Themen 11
K Programm zum Kompilieren von java-Dateien Java Basics - Anfänger-Themen 17
A Dateien löschen mit Java Java Basics - Anfänger-Themen 18
P Kompelieren von 2 Java Dateien im selben Ordner Java Basics - Anfänger-Themen 13
J Problem mit Ausführen von Java-Dateien Java Basics - Anfänger-Themen 5
T .java Dateien ausführen - commandline Java Basics - Anfänger-Themen 2
B Dateien mit Java ausführen Java Basics - Anfänger-Themen 8
A Versteckte Dateien in Java ausblenden Java Basics - Anfänger-Themen 2
Bloodredangel [gelöst] Kompilieren von .java-Dateien per javac Java Basics - Anfänger-Themen 5
J Zusätzliche jar dateien in Java APplet (hsqldb.jar) Java Basics - Anfänger-Themen 8
E Jar Dateien zurück in *.java dateien Java Basics - Anfänger-Themen 3
S Ich kann mit einem Eclipse 3.2 keine Java Dateien Starten Java Basics - Anfänger-Themen 10
G exe-Dateien zum Starten von Java-Programmen? Java Basics - Anfänger-Themen 13
B In Java erstellte Dateien in Excel verwenden Java Basics - Anfänger-Themen 4
J ".java" und ".class"-Dateien ;-) Java Basics - Anfänger-Themen 6
K Java-FileChooser - mehrere Dateien auswählen Java Basics - Anfänger-Themen 3
R java Spalte-, Zeilebearbeitung von txt Dateien Java Basics - Anfänger-Themen 4
B Java Dateien zu Projektstruktur addieren Java Basics - Anfänger-Themen 5
R Dateien aus Java heraus öffnen Java Basics - Anfänger-Themen 9
J Kommunikation zwischen zwei JAVA-Dateien Java Basics - Anfänger-Themen 8
J java dateien mit doppelklick öffnen Java Basics - Anfänger-Themen 3
B von Java PDF Dateien öffnen Java Basics - Anfänger-Themen 4
A java applet mit mehreren dateien Java Basics - Anfänger-Themen 2
D Java-Dateien einbinden Java Basics - Anfänger-Themen 3
G Name von java-Dateien, *.java Java Basics - Anfänger-Themen 9
T Mit Java Dateien aus dem Netz laden Java Basics - Anfänger-Themen 2
A ausführbare Dateien mit Java erstellen? Java Basics - Anfänger-Themen 4
G mehrere hundert Java-Dateien kompilieren Java Basics - Anfänger-Themen 5
P Lokale Dateien in Java-Applets einlesen Java Basics - Anfänger-Themen 2
M Java und dateien auslesen mit umlauten Java Basics - Anfänger-Themen 2
B Was ist der Unterschied zwischen .java- und .class Dateien Java Basics - Anfänger-Themen 3
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 2
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 24
K Java - Enums Java Basics - Anfänger-Themen 30
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben