2015-05-11 15 views
7

Ich baue meine erste Elektronen-App, aber jetzt frage ich mich, wie man den Quellcode schützen, um von anderen Entwicklern angezeigt zu werden.So schützen Sie Quellcode in Elektron Projekt

Die offizielle doc sagt:

Um App-Ressourcen und den Quellcode von den Benutzern zu schützen, Sie können wählen Sie Ihre App in ein asar Archiv mit wenig Änderungen an Ihrem Quellcode zu verpacken.

Bisher ist die beste, die ich denken kann, ist uglyfy der Source-Code und verpacken sie in eine asar Datei, aber die asar Datei ist nur ein Archiv und kann leicht entnommen werden werden. Ich sehe nicht, wie das machen Ihren Code "vor dem Benutzer geschützt"

Irgendwelche Ideen?

+1

Sie müssten auch einen Weg finden, um gegen Aufrufe von toString zu schützen, die entschlüsselte Quellen anzeigen könnten. – gaspard

Antwort

3

Es gibt keinen offiziellen Weg ist der Code zur Zeit zu kopieren zu schützen, sorry - wenn Sie dies tun wollen, müssen Sie Ihren eigenen Weg zu erfinden (oder Sorgen einfach nicht darüber)

+1

Ja, genau das habe ich befürchtet – 0x1gene

1

Es ist Unmöglich, den Code vollständig zu schützen, egal wie Sie ihn verpacken, damit er ausgeführt werden kann, muss er zugänglich und entschlüsselt sein, was bedeutet, dass der Schlüssel lokal gespeichert werden muss.

Betrachten Sie dieses Szenario;

Die Autoren des Elektronensystems und des asar-Dateiformats implementieren die Verschlüsselung ähnlich wie ein passwortgeschützter zip und geben Ihnen die Möglichkeit, das Archivpasswort zur Kompilierzeit anzugeben, damit es sicher in der .exe und der .exe gespeichert wird asar-Datei kann ohne sie nicht geöffnet/gelesen werden.

Ein Hacker konnte immer noch den Schlüssel herausfinden, indem er sich selbst mit einigen Testschlüsseln, zum Beispiel AAAA und AAAB, kompilierte und dann die resultierende Binärdatei verglich, um den Ort der Schlüsselfolge darin zu bestimmen. Sobald sie wissen, wie man den Schlüssel aus der EXE extrahiert, ist das Spiel vorbei.

Ich denke, der stärkste Schutz, den Sie machen können, ist, wenn Sie den Elektronenquellcode selbst ändern, um den Schlüssel zu speichern und abzurufen, aber selbst dann kann ein Angreifer den Code dekompilieren, vergleichen Sie ihn mit einer dekompilierten Standardversion von Elektron wo Ihre Code-Änderungen beginnen und Reverse Engineering es, bis sie herausfinden, wie Sie den Schlüssel speichern.

In dem Moment, in dem sie den Schlüssel haben, ist das Spiel vorbei, und damit ein Elektron Code laufen kann, muss es in der Lage sein, es zu lesen, was bedeutet, dass der Schlüssel lokal verfügbar sein muss. Catch 22.