Das verstecken des source-code .jar-Dateien
Kann man leicht extrahieren Sie die .jar
Datei und siehe source code. Ich möchte zum Schutz der Quell-code aus gesehen. Eine mögliche Antwort ist, um mit einem Kennwort schützen Sie die Datei, wie wir es tun, für zip-Dateien.
Aber, wenn das Passwort bekannt ist, dann wird der source-code kann leicht gesehen werden.
Gibt es irgendwelche Möglichkeiten, versteckt den Quellcode und habe es immer noch in der Lage sein zu laufen? Was ähnliches wie eine .exe
in Windows. Dies sollte laufen sowohl auf windows-als auch Linux-Umfeld.
Ich nehme an, du meinst, dass die
Ja, Ihr haben Recht
Was ist Ihr Ziel? Entmutigen Gelegenheits-Zuschauer? Oder zum Schutz Ihrer eigenen algorithmen für die besten, soweit möglich?
class
Dateien dekompiliert und nicht, dass Sie tatsächlich ausgeliefert source-code mit Ihrem Jar-Datei...Ja, Ihr haben Recht
Was ist Ihr Ziel? Entmutigen Gelegenheits-Zuschauer? Oder zum Schutz Ihrer eigenen algorithmen für die besten, soweit möglich?
InformationsquelleAutor AGEM | 2013-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie wollen, zu suchen ist "java-Verschleierung". Es gibt viele Werkzeuge, um dabei zu helfen, aber es ist eine verlorene Schlacht, wenn die Leute, die wollen, dass Ihr code, der es wirklich will. Wenn das ist ein ernstes problem, schreiben Sie in C++.
Managed C++ ist wirklich nur C# und nicht viel anders als Java. Real kompilierte C++ kann zerlegt oder dekompiliert, aber das Ergebnis ist nicht immer so nützlich. Am Ende, wenn Sie haben Ihre Hände auf das Objekt, gegeben genug Zeit, können Sie reverse engineer. Wenn Sie wirklich wollen, zu verstecken, ein Algorithmus, führen Sie es ein ein server und keine Objekt-code.
Oder Sie können einfach schreiben Sie es in Perl, Und die hand aus der Quelle. oft ist auch der Autor kann nicht decodieren, dass nach einer Woche oder zwei 🙂
während Perl ist nicht meine Lieblings-Sprache ist, ist es durchaus lesbar, wenn Sie diszipliniert darüber, wie Sie es schreiben, oder, wenn Sie über ausreichende Perl-Erfahrung. Wie gezeigt, von dieser Frage: stackoverflow.com/questions/1885800/...
hast du sehen:), nehme ich an. Ich mag Perl und APL, die ist noch anfälliger zu sein, eine nur-schreiben-Sprache.
InformationsquelleAutor Peter Wooster
Haben Sie einen Blick auf ProGuard, es ist ein beliebtes Verschlüsselungsprogramm für java. Für die Verpackung Ihrer java Programm als ausführbare windows-Datei, dieser Beitrag könnte dir helfen: Wie konvertiere ich mein Java-Programm ein .exe-Datei?
Dann nicht, handout Ihre jar / exe-Datei an Benutzer, die Ausführung in der cloud. Packaging jar-in exe-und Futtermitteln sind Dinosaurier-Zeitalter
proguard auch nicht wahr Verschleierung. Es ändert die Namen von Methoden und so weiter, so dass Sie nicht helfen, das reverse Engineering.
InformationsquelleAutor gerrytan
Streng genommen, das ist nicht wahr. Es sei denn, Sie haben tatsächlich enthalten die Quellcode-Dateien in das GLAS, jemand nicht sehen kann, die original-source-code. Aber Sie können (in der Regel), dekompilieren ".class" - Dateien in Ihre JAR-Datei der Java-Quellcode ist funktionell äquivalent auf Ihre original-source-code.
Andere Antworten angegeben haben, können Sie machen es schwieriger für jemanden, der versucht, reverse Engineering Ihr code; z.B. durch einen obfuscator oder benutzerdefinierten classloader, entschlüsselt code, der in verschlüsselter form gespeichert, in Ihre JAR-Datei. Aber nichts, was Sie tun können, ist ausreichend, um zu verhindern, dass ein entschlossener hacker aus besiegen Sie Ihre Maßnahmen. NICHTS.
Der einzige praktische Weg, um den code zu schützen gegen reverse-engineering ist es, nicht loslassen. Oder verwenden Sie die software-Lizenzierung oder andere rechtliche Mittel, um Ihre enden.
Das ist richtig. Aber es ist nicht das gleiche. Es ist nicht der - source-code.
InformationsquelleAutor Stephen C
Wenn Sie beabsichtigen, einfach zu entmutigen Gelegenheits-Zuschauer dann eine der vielen code-obfuscation-tools für Java würde wahrscheinlich helfen. Es wird mess den bytecode genug, um Ihre algorithmen weniger offensichtlich.
Wenn auf der anderen Seite, müssen Sie von der "absoluten" Schutz, keine Verschlüsselung/Verschleierung tool wäre nutzlos - wenn auf Ihrem computer ausführen können, es dann einen entschlossenen und kompetenten Angreifer wäre in der Lage zu schließlich herauszufinden, wie dein code funktioniert.
Ein paar mögliche Lösungen:
Verwenden eine client/server-Architektur laufen die proprietären Teile auf Computern, die Sie besitzen, so dass Sie nicht haben, um enthalten die mehr interessante Teil des Codes in der client-Anwendung. Natürlich ist diese Lösung nicht immer möglich, für eine Vielzahl von Gründen.
Mieten ein paar Anwälte, die spezialisieren sich auf Fragen des Geistigen Eigentums und patent Ihre algorithmen. Meiner Meinung nach ist dies viel Teig alternative, als zu versuchen zu zwingen, eine technische Lösung auf ein nicht-technisches problem...
InformationsquelleAutor thkala
Suche nach "java obfuscation". Es gibt viele Werkzeuge, um dabei zu helfen, aber wenn jemand wirklich versessen auf das abrufen von source-code, den Sie kann nicht aufhören, ihn.
Implementieren sicherheitsrelevante Sachen, die Sie sollten schreiben von code in C++, dann erstellen Sie dynamische Bibliothek (.dll für windows und .also für linux ) und java jni zu verwenden.
auf windows können Sie mingw für das kompilieren von code.
haben Sie einen Blick auf diese
https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html
InformationsquelleAutor Dheeraj Sachan