Quellcode absichern?

Status
Nicht offen für weitere Antworten.

NDEBUG

Mitglied
Hallo, einfache Frage... Erstelle ich ne jar-Datei aus meinen *.java Dateien, dann compiliert er daraus ja *.class Dateien. Wie ich nu im Internet gefunden habe, sind die sehr einfach mit kostenlosen Programmen wieder in den Quellcode zurückübersetzbar. Kann man da was machen, damit daß nicht mehr geht? Weil ich ja vielleicht nicht will, daß andere mal einfach so meinen Source Code anschauen können. Exe-Dateien wird man ja vermutlich zwecks Plattformunabhängigkeit nicht erstellen können.
 

Der Müde Joe

Top Contributor
>Kann man da was machen, damit daß nicht mehr geht?

Nein. es gibt zwar Obfuscatoren, welche den Quelltext lesen erschweren (a, b, c ... anstatt maxVelocity, xSize...) aber dekompilieren kann mans trotzdem.
 
M

maki

Gast
Diese Problem gibt es nicht nur bei Java, sondern auch bei .Net sobald Bytecode erzeugt wird.
Es gibt sog. "Obfuscator", aber der Einsatz lohnt sich wohl bei dir nicht und diese haben auch ihre Tücken.

Was ist denn so geheim an deinem Quellcode wenn ich fragen darf? ;)
 

NDEBUG

Mitglied
Was ist denn so geheim an deinem Quellcode wenn ich fragen darf? ;)

Revolutionäre, nie dagewesene Design Patterns ... die ich erst in meinem in 10 Jahre erscheinenden Buch "Design Patterns des nächsten Jahrtausends" öffentlich machen wollte.

Aber im ernst, dann schießt sich Java als kommerzielle Plattform ja wohl mal ab oder seh ich hier was falsch?
 
M

maki

Gast
Aber im ernst, dann schießt sich Java als kommerzielle Plattform ja wohl mal ab oder seh ich hier was falsch?
Nein, wieso denn?
Schon mal darauf geachtet wieviel kommerzielle SW es in Java gibt?

Im Prinzip lässt sich jedes Kompilat dekompilieren, egal ob Assembler, C/C++, C# oder Java, das Ergebnis ist dann mehr oder weniger nah am Original, aber eigentlich nie der Original Quellcode. Ist nur eine Frage des Aufwandes... aber illegal ist es meist, solange es sich nicht um OSS handelt, und in diesem Falle macht dekompilieren wenig Sinn ;)
Es gibt sogar Stimmen die sagen, mal sollte nix Obfuskieren (gibt es dieses Wort überhaupt? :noe:), denn so lässt sich am einfachsten ein Verstoss gegen das Urheberrecht nachweisen.

Ist für den Otto-Normal Entwickler aber meist uninteressant, wer hat schon so tolle Algorythmen die sonst keiner kennt. Ganz abgesehen davon, das nicht selten das Projekt schon GPL ist, ohne dass der Entwickler das weiss, dazu reicht es schon den MySQL Treiber zu nutzen :)

Gab dieses Thema schon öfters hier, einfach mal suchen.
 
S

SlaterB

Gast
kommt auf den Wunsch nach Dekompilierung an,
wenn es so begehrte Software wäre, zu denen jetzt schon Seriennummern/ Kopierschutz usw. geknackt wird,
dann wird es mit Java sicher nicht schwerer
 

NDEBUG

Mitglied
Hmmm kann mich damit ja nicht recht anfreunden, daß jeder meinen Source Code mit wenigen Mausklicks angucken kann. Bei Assembler/c/c++ usw. ist das Reverse-Engineering recht anspruchsvoll und braucht viel Erfahrung. Vielleicht gibts auch dafür Tools die das erledigen. Die dürften dann aber schweineteuer sein.

EDIT: kopierschutz :) wenn jeder den source code dazu anschauen kann is ja mal witzlos...
 
M

maki

Gast
Hmmm kann mich damit ja nicht recht anfreunden, daß jeder meinen Source Code mit wenigen Mausklicks angucken kann.
Wie gesagt, das dekompilat entspricht eigentlich nie 100% dem Original Quellcode, kann aber verstehen dass das eine neue Erfahrung ist, an die man sich erstmal gewöhnen muss.

Wenn du dich dadurch besser fühlst, kannst du ja einen Obfuscator nutzen, ich wage aber zu bezweifeln das es sich lohnt ;)

EDIT: kopierschutz wenn jeder den source code dazu anschauen kann is ja mal witzlos...
Kopierschutz war auch vorher witzlos :) Deswegen geht der Trend seit Jahren hin zu Client/Server basiertem freischalten der SW oder gar Dongels..
 
S

Spacerat

Gast
Ich höre in diesem Zusammenhang komischerweise immer nur "Obfuscator". Hab' mich diesbezüglich auch schon öfters dazu geäussert, das es möglich ist, Klassen (Bytecode) zu verschlüsseln, wodurch direktes dekompilieren zunächst erstmal verhindert wird. Derartig verschlüsselte Klassen müssten dann natürlich mit einem speziellen Classloader geladen werden. Dieser Classloader ist bisher die einzig erkennbare Schwachstelle in diesem Verfahren und, obwohl dessen Sicherheit von der bzw. den verwendeten Verschlüsselungsart(en) abhängt, ist es definitiv standhafter als "obfuscation" aber natürlich auch nicht 100%ig sicher. Ich selbst hab' auch so meine Schwierigkeiten meine Codezeilen vor mir selbst zu schützen.
@Edit: ...und egal wo... C++, Java, usw. Disassemblys zu Verstehen ist nicht all zu schwer. Assembler ist nunmal die einfachste Programmiersprache der Welt, für mich jedenfalls. Leider ist Assembler nicht so komfortabel wie irgendwelche OOPs. Aber IdaPro sei Dank ist nichts wirklich sicher.
 
Zuletzt bearbeitet von einem Moderator:

void

Mitglied
Ich verstehe das Grundproblem ehrlich gesagt nicht, denke mal das mit den "revolutionären Pattern" war nicht ganz ernst gemeint und was gibt es sonst schon groß zu verheimlichen?
 
S

Spacerat

Gast
...wie jetzt... "Ich verstehe das Grundproblem nicht"? Das Grundproblem ist doch eigentlich immer das selbe. Der Schutz der Software. Z.B. verheimlichen, wie ein spezielles Lizensierungsverfahren, ein spezieller Kopierschutz oder was auch immer funktioniert. Was gibts da nicht zu verstehen? Aus welchem Grund sind denn die meisten Anwendungen kopiergeschützt? Warum sollte man den in irgendwelchen Anwendungen Lizensierungsverfahren einbinden? Ist doch völlig Klar... zum Geld verdienen oder nicht?
 

Ebenius

Top Contributor
Ich wollte nur mal eben anmerken, dass keines Wegs die meisten Anwendungen kopiergeschützt sind; das glaube ich frühestens, wenn ich dazu vernünftige Zahlen sehe. Außerdem ist Java keines Wegs kommerziell unnütz, sonst hätte ich ja schließlich keinen (oder nicht meinen jetzigen) Job.

Ebenius
 
S

Spacerat

Gast
Mehr oder weniger gute Copy-Locks (Kopierschütze? hmmm) findet man eigentlich nur bei irgendwelchen Spielen, welche letztenendes auch Anwendungen sind. Obendrein haben die dann auch manchmal noch ein ausgeklügeltes Lizensierungsverfahren. Und wenn man sich in irgendwelchen Computergeschäften mal umsieht, ist das Angebot an Spielen meist höher, als der Anteil der übrigen Anwendungen. Spiele sind im Gegensatz zu ernsthaften Anwendungen eben auch Massenware und wären viel teurer, wenn man statt eines Copy-Locks Lizenzdongles verwendet. Daraus erschliesst sich dann der Wahrheitsgehalt meiner Aussage, es gäbe mehr Copy-Locks als Lizenzverfahren. Braucht man immer noch irgendwelche Zahlen?
 
M

maki

Gast
Die (kommerziellen) Anwendungen die ich schreibe sind allesamt für dem Kunden, gehören ihm inkl. Quellcode etc., hatte noch nie den Fall dass der Kunde einen Kopierschutz wollte/brauchte.

Ist wohl eher etwas für Leute die eigene Anwendung schreiben um damit reich und berühmt zu werden.

Zum Thema "revolutionäre Pattern"..
Wenn es keiner kennt, íst es kein Pattern ;)
 
S

Spacerat

Gast
Die (kommerziellen) Anwendungen die ich schreibe sind allesamt für dem Kunden, gehören ihm inkl. Quellcode etc., hatte noch nie den Fall dass der Kunde einen Kopierschutz wollte/brauchte.
??? Was sind denn das für Kunden? Ich meine, wenn man seine Anwendungen speziell für einen Kunden zuschneidet und sie diesem dann inklusive Quellcode verkauft, verdient man dadurch zwar sein Geld, die speziell entwickelte Software bleibt aber "einmalig", ist deswegen nicht komerziell und braucht auch nicht geschützt werden. Nur deine Kunden haben Nutzen von deinen Entwicklungen.
Ist wohl eher etwas für Leute die eigene Anwendung schreiben um damit reich und berühmt zu werden.
Eben: Das macht komerzielle Software aus. Z.B. Windows, MS-Office, Need for Speed, Diablo3 usw.
Zum Thema "revolutionäre Pattern"..
Wenn es keiner kennt, íst es kein Pattern ;)
Da fehlt noch ein Rudel Ausrufezeichen :lol:
 
B

bygones

Gast
??? Was sind denn das für Kunden? Ich meine, wenn man seine Anwendungen speziell für einen Kunden zuschneidet und sie diesem dann inklusive Quellcode verkauft, verdient man dadurch zwar sein Geld, die speziell entwickelte Software bleibt aber "einmalig", ist deswegen nicht komerziell und braucht auch nicht geschützt werden. Nur deine Kunden haben Nutzen von deinen Entwicklungen.
und ? ist bei uns genauso... der Kunde ist "Eigentuemer" des Quellcodes und das will er auch vertraglich zugesichert haben.
Ausserdem versteh ich nicht den kausalen zusammenhang von einmalig und nicht kommerziell.
Und natuerlich haben nur die Kunden Nutzen von der Entwicklung - ich selbst oder die Firma brauchts bestimmt net, wurde ja fuer den Kunden entwickelt...

kommerzielle Software heisst nicht per se "ich erschaffe was und scheffel damit geld indem es tausende von menschen nutzen"... die Software hier bei uns geht auch fuer einige Millionen weg, nur halt fuer einen Kunden - das nenn ich dann auch kommerziell
 

Marco13

Top Contributor
Nein. es gibt zwar Obfuscatoren, welche den Quelltext lesen erschweren (a, b, c ... anstatt maxVelocity, xSize...) aber dekompilieren kann mans trotzdem.

Dazu noch ein Nachtrag: Obfuscatoren wie RetroGuard verändern nicht nur die Variablen- und packagenamen in der beschriebenen Form, sondern setzen für diese Namen auch Schlüsselwörter ein. Ich kann mir gut vorstellen, dass ein normaler Decompiler dort an seine Grenzen stößt, und nur solchen Code ausspuckt wie
Java:
package a.c.d;

import a.c.e.e;
import a.c.d.e;

class int
{
    private int while(a a, d do)
    {
        int class = 0;
        for(int float=0; float<5; float++)
        {
            float break = a.b(float);
            class += do.switch(break);
        }
        return class;
    }
}
Das bringt einem dann auch nicht so viel....
 

schalentier

Gesperrter Benutzer
.. Was gibts da nicht zu verstehen? Aus welchem Grund sind denn die meisten Anwendungen kopiergeschützt? Warum sollte man den in irgendwelchen Anwendungen Lizensierungsverfahren einbinden? Ist doch völlig Klar... zum Geld verdienen oder nicht?

Der Punkt ist nur, dass die Kopierschutze IMHO voellig fuern Popo sind. Gugg dir doch mal die einschlaegigen Seiten an... nen Crack gibts meisten mit dem Release und manchmal auch ne Woche spaeter. Fuer Serials jeder Art gibts Key-Generatoren.

Und warum? Weil man Quellcode und dessen Compilate per se nicht schuetzen kann. Spaetestens zur Ausfuehrungszeit der Software muss das Compilat entschluesselt, entpackt, was-auch-immer werden. Ja, man kann als Entwickler viiiel Zeit und Energie hernehmen, um es einem Angreifer so schwer wie moeglich zu machen. Aber waere diese Zeit/Energie nicht sinnvoller in der eigentlichen Anwendung untergebracht? Denn diese wird dadurch logischerweise etwas besser (z.B. bugfreier), was fuer mich den Kaufanreiz deutlich staerker erhoehen wuerde, als ein Kopierschutz/Obfuscator/Dongle.
 
S

Spacerat

Gast
Uhhh... nu' weichen wir aber vom Thema ab... Was komerziell bedeutet muss ja nicht geklärt werden. Der Unterschied zwichen speziell entwickelter Software und "kommerzieller" Software ist schlicht der: Eure Firmen verkaufen Software im allgemeinen; Eurer Handelsgut ist "Software". Ein Softwarehaus (z.B. Egosoft) handelt mit namentlich benannten Software-Produkten wie z.B. "X3 - Terran Conflict". Das Handelsgut ist dieses eine Produkt (... in diesem Fall eines aus einer Produktpalette).
BTT schlag ich vor...
@Schalentier: Da sind wir ja schonmal einer Meinung. Und die, die unsere Meinung nicht teilen, wollen dann irgendwelche Schutzmechanismen in ihre Software eingebaut haben und eröffnen Threads wie diesen hier. Die Antwort ist und bleibt die gleiche: "Man kann es Crackern nur schwerer machen!". Vllt. wäre für dieses Thema langsam mal ein Sammelthread sinnvoll.
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
??? Was sind denn das für Kunden? Ich meine, wenn man seine Anwendungen speziell für einen Kunden zuschneidet und sie diesem dann inklusive Quellcode verkauft, verdient man dadurch zwar sein Geld, die speziell entwickelte Software bleibt aber "einmalig", ist deswegen nicht komerziell und braucht auch nicht geschützt werden. Nur deine Kunden haben Nutzen von deinen Entwicklungen.
Hmm.. wenn man sich die Rechnungen an den Kunden ansieht, wird gleich ganz schnell klar das die SW kommerziell ist ;)
Das eigentliche Geld machen wir meist nicht mit der Initialversion der SW, sondern mit dem Änderungen während der Laufzeit und dem Service.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
jhCDtGVjcZGcfzug Was genau ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 5
jhCDtGVjcZGcfzug Was ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 3
J Wie bestehenden Quellcode in IDE richtig übernehmen Java Basics - Anfänger-Themen 27
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
P Quellcode LinkedList Java Basics - Anfänger-Themen 2
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
F Quellcode wird nicht in cmd angezeigt Java Basics - Anfänger-Themen 8
N Erste Schritte Quellcode fehlerhaft Java Basics - Anfänger-Themen 2
J Methoden Quellcode DP Fibonaaci erklärt Java Basics - Anfänger-Themen 5
L Fehler in Quellcode?! Java Basics - Anfänger-Themen 3
D Generics ArrayList: Bug im Quellcode Java Basics - Anfänger-Themen 14
G Wie kann ich mein Quellcode als Programm vom desktop starten? Java Basics - Anfänger-Themen 1
Hacer Quellcode lesen Java Basics - Anfänger-Themen 13
M Greenfoot World und Actor Quellcode Java Basics - Anfänger-Themen 13
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
G Quellcode verstehen Java Basics - Anfänger-Themen 9
F Quellcode optimieren... Java Basics - Anfänger-Themen 4
M Verstehe das Programm(Quellcode) nicht!! Java Basics - Anfänger-Themen 12
U Java Quellcode Schaltjahr Java Basics - Anfänger-Themen 13
D Quellcode verstehen Java Basics - Anfänger-Themen 4
G Quellcode "splitten" Java Basics - Anfänger-Themen 6
V Array ermitteln - in Quellcode speichern Java Basics - Anfänger-Themen 15
J Quellcode von einem Link kriegen? Java Basics - Anfänger-Themen 3
W Datentypen String in Quellcode umwandeln Java Basics - Anfänger-Themen 25
O Quellcode nach bestimmter Ausgabe durchsuchen Java Basics - Anfänger-Themen 14
J Java-Quellcode Java Basics - Anfänger-Themen 13
J Tabelle aus Website einlesen [nicht im Quellcode] Java Basics - Anfänger-Themen 6
T Quellcode zur .jar oder .exe Java Basics - Anfänger-Themen 7
D Verbesserungsvorschläge zum Quellcode Java Basics - Anfänger-Themen 15
P Suche Java Programme mit gutem/anfängertauglichem Quellcode Java Basics - Anfänger-Themen 8
M Quellcode kann nicht kompiliert werden Java Basics - Anfänger-Themen 6
S Grafische Oberfläche Quellcode ändern Java Basics - Anfänger-Themen 8
T Quellcode zu Jar? Java Basics - Anfänger-Themen 14
S Erste Schritte Fakultät Quellcode Java Basics - Anfänger-Themen 12
E Quellcode Erklärung Java Basics - Anfänger-Themen 8
N Feste Hardcodierte Pfade im Quellcode Java Basics - Anfänger-Themen 6
S Allgemein: Quellcode einrücken Java Basics - Anfänger-Themen 8
W Kurzer Quellcode klein aber oho! Java Basics - Anfänger-Themen 7
H frage zu meinem quellcode Java Basics - Anfänger-Themen 10
M String in Quellcode umwandeln Java Basics - Anfänger-Themen 9
S Textfragmente aus Quellcode lesen und abspeichern Java Basics - Anfänger-Themen 2
U Netzwerk Chatprogramm Quellcode funktioniert nicht Java Basics - Anfänger-Themen 6
A Quellcode aus diesem Forum für komerzielle Zwecke/Bachelor Thesis? Java Basics - Anfänger-Themen 4
F Datei Quellcode Java Basics - Anfänger-Themen 8
W Hilfe bei Interpretation von Quellcode Java Basics - Anfänger-Themen 8
X Webseite auslesen ohne Quellcode zu splitten Java Basics - Anfänger-Themen 3
A log4j - wie kann ich im Quellcode initialisieren statt in der properties-Datei? Java Basics - Anfänger-Themen 2
M mit java quellcode im browser öffnen Java Basics - Anfänger-Themen 1
hdi Programmier-Stil : Speicher vs. Quellcode Java Basics - Anfänger-Themen 67
M Quellcode verbessern Java Basics - Anfänger-Themen 6
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
I Kann nicht compilieren warum? Bei großen Quellcode. Java Basics - Anfänger-Themen 8
A Änderung im Quellcode > javac > keine Änderung in Kons Java Basics - Anfänger-Themen 6
C Quellcode richtig bisher? wie gehts weiter? Java Basics - Anfänger-Themen 13
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
D quellcode in webseite einbinden Java Basics - Anfänger-Themen 7
B Kann Quellcode von "Hanoi" nicht verstehen. Bitte Java Basics - Anfänger-Themen 4
D Fragen zu Quellcode QuickSorter Java Basics - Anfänger-Themen 13
F Quellcode & Ausgabe Java Basics - Anfänger-Themen 6
M Java Quellcode in eine exe datei umwandeln Java Basics - Anfänger-Themen 4
G Quellcode kommentieren Java Basics - Anfänger-Themen 6
S html quellcode runterladen Java Basics - Anfänger-Themen 2
D Quellcode richtig lesen lernen Java Basics - Anfänger-Themen 8
S Von einer jar.Datei den Quellcode. Java Basics - Anfänger-Themen 1
A Jar Datei im Quellcode einbinden Java Basics - Anfänger-Themen 3
G Problem mit Quellcode! Java Basics - Anfänger-Themen 15
D Import von Quellcode Java Basics - Anfänger-Themen 2
H Wo in GUI-Klasse bringe ich Quellcode unter? Java Basics - Anfänger-Themen 8
M Verstehe den Quellcode nicht ganz Java Basics - Anfänger-Themen 3
O mathematische Formel in quellcode Java Basics - Anfänger-Themen 5
M Quellcode einschränken?! Java Basics - Anfänger-Themen 6
L Fehler im simplen Quellcode! Java Basics - Anfänger-Themen 2
-horn- Strategie: Speichervorgang gegen unvollständiges Speichern absichern? Java Basics - Anfänger-Themen 11
G benutzerverwaltung absichern Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben