Java Programme nichtmehr-decompilierbar machen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Kann man ein Java Programm, das wegen des Bytecodes ja immer decompilierbar ist, irgendwie nicht mehr decompilierbar machen?

Wenn ja, wie?
 

The_S

Top Contributor
nein, man kann es nur erschweren. Wenn du es undecompilierbar machen würdest, könnte auch die JVM nichts mehr damit anfangen :p
 
G

Guest

Gast
Gäb es eine Möglichkeit auf andere Programmiersprachen auszuweichen?
Also ein fertiges Programm übersetzen zu lassen, um es so unlesbar zu machen?
 

@x.l

Bekanntes Mitglied
Naja, es gibt Konverter die Java-Code bspw. in C/C++/C# übersetzen. Kann dir aber nicht sagen wie die Qualität der Ergebnisse ist bzw. ob es sich überhaupt problemlos konvertieren lässt und läuffähig ist.
 
G

Guest

Gast
keinen der Millionen Euro wert ist :D
Aber einen der nicht-manipulierbar sein muss. Die Funktionsweise darf in keinem Fall nachvollziehbar sein. Was ja bei Decompilierung sehr sehr einfach ist.

@x.l: also kommts auf einen Versuch an?
Werd mich mal umschauen :)

Hat vielleicht schon jemand Erfahrung mit solchen Programmen?
 
G

Guest

Gast
Anonymous hat gesagt.:
keinen der Millionen Euro wert ist :D
Aber einen der nicht-manipulierbar sein muss.

Um was für eine Art von Anwendung handelt es sich denn? Desktopanwendung oder Webanwendung (Applet) ?
 

tfa

Top Contributor
Anonymous hat gesagt.:
Anonymous hat gesagt.:
keinen der Millionen Euro wert ist :D
Aber einen der nicht-manipulierbar sein muss.

Um was für eine Art von Anwendung handelt es sich denn? Desktopanwendung oder Webanwendung (Applet) ?
Völlig egal. Was auf dem eigenen Rechner läuft kann grundsätzlich immer zurück entwickelt/geknackt/manipuliert werden.
Die Lösung wäre eine Client-Server-Anwendung.
 
G

Gast

Gast
Ich weiss, es würde mich trotzdem mal interessieren ob es sich um eine Desktop oder eine Webanwendung handelt.
 
G

Guest

Gast
Eine Desktopanwendung.

Also müsst ich den Code der nicht geknackt werden dürfte um wirkich sicher zu gehen immer auf einen eigenen Server auslagern?

hmm... bei Teilen ginge das vielleicht, aber bei anderen muss das aufm jeweiligen Client ablaufen. Das Prog muss auch auf Rechnern laufen, die nicht am Internet hängen.

Kann man Code eigentlich verschlüsseln und erst zur Laufzeit wieder entschlüsseln sobald er gebraucht wird?
Dann könnte man den Schlüssel ganz tief im Code vergraben und verwirren.
 
S

SlaterB

Gast
> und erst zur Laufzeit wieder entschlüsseln

was spricht dagegen, sich nur diesen Code 'zur Laufzeit' anzuschauen?
 
G

Guest

Gast
Könnt ich nicht theoretisch den entsprechenden Code zur Laufzeit immer wieder morphen um das Ausfindigmachen der Stellen die den Code knacken würden zu erschweren?
 

The_S

Top Contributor
Anonymous hat gesagt.:
Kann man Code eigentlich verschlüsseln und erst zur Laufzeit wieder entschlüsseln sobald er gebraucht wird?
Dann könnte man den Schlüssel ganz tief im Code vergraben und verwirren.

Kommt drauf an, was du mit verschlüsseln meinst, aber mit unnötigen Aufrufen, aufgeblähten algorithmen, codierten Variablen und obsfucatoren lässt sich schon einiges machen ;) .

Aber auch hier gilt: Wenn jemand deinen Code UNBEDINGT sehen möchte und das nötige Know-How/die nötigen Mittel dazu hat, dann schafft er das auch.
 
S

SlaterB

Gast
du willst du Code irgendwie verschlüsseln (wahrscheinlich zum Schutz) und zur Laufzeit entschüsselt an die JVM geben (Zeitpunkt x),
aber dann reicht es doch für den Angreifer, einfach zum Zeitpunkt x den bereits entschlüsselten Code anzuschauen

unter der Voraussetzung, dass das alles möglich ist, keine Ahnung
 
G

Gast

Gast
Um auch eine Hilfestellung zu geben:

Wie bereits erwähnt, ist der einzige Weg, den Code zu schützen der, es auf einem eigenen Server laufen zu lassen.
Falls das nicht funktioniert, dass muss zumindest der schützenswerte Teil des Programms auf dem Server laufen und der andere Teil als Clientanwendung. Also eine Client-Server Anwendung.

Wenn du uns noch sagst, warum ein Teil auf dem Client laufen muss, dann können wir dir vielleicht weiterhelfen. Also was wird vom Client benötigt? Irgendwelche Hardwareressourcen?
 
G

Guest

Gast
hmm... mist.
Dann sollte ich vielleicht doch über eine Client-Server Lösung nachdenken.

Wenn jemand dieses Know-How hat, könnte er damit sehr viel Schaden anrichten.
 
G

Guest

Gast
Nein, der Hauptgrund dafür, dass es aufm Client laufen muss ist der, dass das Programm auch auf Rechnern laufen sollte die über keine Internetverbindung verfügen.

Aber wenn die einzig sichere Möglichkeit eine Client-Server Applikation ist, muss ich hier wohl doch Abstriche machen.
Sicherheit geht in jedem Fall vor.
 

The_S

Top Contributor
Was sind denn für wichtige Daten in deinem Code, die keiner sehen darf (mal konkret gefragt ;) )?
 
S

SlaterB

Gast
es gibt noch eine andere Möglichkeit: eine verschlossene Hardware-Box (ganz klein: Chipkarte),
alle Öffnungsmöglichkeiten sind per Draht mit einer Handgranate verbunden (Achtung: geht nicht in Chipkarte)
 
G

Guest

Gast
Allzu konkret kann ich nich Antworten, aber welche die das ganze System aushebeln und obsolet machen könnten.
 
G

Guest

Gast
SlaterB hat gesagt.:
es gibt noch eine andere Möglichkeit: eine verschlossene Hardware-Box (ganz klein: Chipkarte),
alle Öffnungsmöglichkeiten sind per Draht mit einer Handgranate verbunden (Achtung: geht nicht in Chipkarte)

:D das wär mal was, dann hätt Premiere keine Probleme mehr :cool:
 
G

Guest

Gast
Wär es denkbar, eine eigene kleine Virtuelle Maschine zu implementieren, ähnlich VMware aber viel kleiner, diese dann mittels AES zu verschlüsseln und meinen Code ausschließlich in dieser VM ausführen zu lassen?

Dann hätt ich meinen kleinen Server im jeweiligen Rechner platziert und um dort noch an den Code ranzukommen, müsste man erstmal 256 bit AES Schlüssel knacken.
 

tfa

Top Contributor
Und wo kommt der Schlüssel her? Der muss ja wohl im Programm gespeichert sein, und zwar unverschlüsselt.
 
G

Guest

Gast
Hab ich erst auch gedacht, und den Gedanken wieder verworfen.
Aber ich denke an eine autonome VM, die man nicht entschlüsseln muss oder bei der man keinen Schlüssel braucht um reinzukommen oder sowas. Denn reinkommen braucht man nicht, sondern ihr nur Daten übergeben und welche annehmen. Eine die man nur startet, die dann bootet (in der verschlüsselten VM) und die nur 2 Schnittstellen (Ein und Ausgabe) zum Wirtsystem hat.

Vergleichsweise wie ein Rechner oder eine VMware - VM, die mit zB. Truecrypt komplett verschlüsselt ist, die man nur startet.

ist sowas denkbar?
 
G

Guest

Gast
Würde sagen man kann das ganz kurz und knapp machen:
So lange du ein Programm lokal ausführst kann und wird es immer geknackt werden, sofern jemand genug Interesse und finanzielle Mittel hat, dies zu tun.

Grund: Dein Programm läuft auf einer unsicheren Plattform, nämlich einem Betriebssystem, und das ist nunmal Software. Du müsstest dein Programm in Hardware gießen um einen höheren Schutz zu haben.
 

ms

Top Contributor
Wie lange programmierst du schon mit Java bzw. objektorientiert?
Wenn noch nicht so lange, dann ist die Chance groß dass man deinen Code sowieso nicht nachvollziehen kann. :lol:

ms
 

tfa

Top Contributor
Wenn Client-Server nicht geht, ist die Hardwarelösung am sichersten. Am besten das Programm als ASIC realisieren und das Gehäuse mit Epoxyd-Harz ausgießen. :eek:)
 
G

Guest

Gast
Gesamt etwa 4 Jahre, intensiv erst seit nem halben.

Wobei das Programm nicht in bälde fertig sein wird. Ist eher ein Langzeitprojekt, das frühestens Mitte nächsten Jahres fertig sein wird.
 
G

Guest

Gast
tfa hat gesagt.:
Wenn Client-Server nicht geht, ist die Hardwarelösung am sichersten. Am besten das Programm als ASIC realisieren und das Gehäuse mit Epoxyd-Harz ausgießen. :eek:)

Das Problem an dieser Sache ist die Finanzierung. Ohne Investoren wird das wohl nicht so einfach zu realisieren sein. Mal abgesehen von den Kosten für den Endnutzer.
 
G

Gast

Gast
Das scheint ja dennoch was ganz tolles zu sein. Denn selbst Hersteller richtig teurer Programme (CAD Software,...) betreiben keinen solchen Aufwand.
 

Der Müde Joe

Top Contributor
Gast hat gesagt.:
Das scheint ja dennoch was ganz tolles zu sein. Denn selbst Hersteller richtig teurer Programme (CAD Software,...) betreiben keinen solchen Aufwand.

Da hatten wir doch mal so ein Programm, wo man immer ein Hardware Teil an den ComPort anschliessen musste, dass das Programm startet. Naja..hat die Umstellung auf die neuen Laptops nicht überlebt.
*SPAM*
 

Saxony

Top Contributor
Jaja der gute alte Com-Port Dongle, welchen es aber mittlerweile auch in USB Ausführungen gibt und somit wieder mit neuen Laptops funktionieren dürfte! ;)

bye Saxony
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Kann ich Java - Programme auch ohne Editor öffnen? Java Basics - Anfänger-Themen 70
A Erste Schritte Vieschiedene Java versionen für verschiedne Programme/Projekte Java Basics - Anfänger-Themen 3
D Java-Programme nur vom eigenem Pc ausführbar Java Basics - Anfänger-Themen 10
B Warum haben Java Programme ein anderes Design? Java Basics - Anfänger-Themen 5
H Sehr einfache Java-Programme Java Basics - Anfänger-Themen 24
Kenan89 Vorbereitungen für JSP und Java Programme Java Basics - Anfänger-Themen 2
S Verständnisprobleme wie Java Programme ablaufen Java Basics - Anfänger-Themen 6
P Suche Java Programme mit gutem/anfängertauglichem Quellcode Java Basics - Anfänger-Themen 8
F Warum werden nicht mehr Programme in Java geschrieben? Java Basics - Anfänger-Themen 27
B Wie entwirft man JAVA-Programme? Java Basics - Anfänger-Themen 10
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
B Java programme Vorschläge! Java Basics - Anfänger-Themen 13
R java-programme schneller laufen lassen Java Basics - Anfänger-Themen 41
K JAVA für online und offline Programme? Java Basics - Anfänger-Themen 7
N Kann keine Java-Programme mehr schreiben Java Basics - Anfänger-Themen 10
K Java Programme ausführen? Java Basics - Anfänger-Themen 8
G Kann mit Java Editor keine Programme schreiben Java Basics - Anfänger-Themen 5
H Textpad > Benutzer-Programme für Java Java Basics - Anfänger-Themen 2
C Mit Java auf laufende Programme zugreifen Java Basics - Anfänger-Themen 3
I Java-Programme starten nicht Java Basics - Anfänger-Themen 14
V Parameter an Java-Programme übergeben Java Basics - Anfänger-Themen 8
F Ausführbare Java-Programme erstellen Java Basics - Anfänger-Themen 9
7 Java Programme - Sicherheit Java Basics - Anfänger-Themen 26
B 2 Programme als 1 Java Programm einbinden Java Basics - Anfänger-Themen 15
K aus Java Programme Jar.datei erstellen (eclipse) Java Basics - Anfänger-Themen 15
T Wie kann ich andere Programme in Java über ein Menü öffnen? Java Basics - Anfänger-Themen 12
K Kann keine Java Programme öffnen Java Basics - Anfänger-Themen 17
G Programme via java steuern Java Basics - Anfänger-Themen 5
K Java Programme ausführen Java Basics - Anfänger-Themen 8
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
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
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben