Frage

Ich habe ein .NET-DLL (C # / VB) mit Custom Controls, Erweiterung und anderen Sachen.

Ich möchte, dass es nur für mich verfügbar sein sollte. Gibt es eine Möglichkeit den unbefugten Zugriff auf eine DLL zu beschränken?

War es hilfreich?

Lösung

Ihre beste Möglichkeit ist, zu verpacken / Verschlüsselungs- / obfuscate die DLL als Anton hingewiesen. beten und dann, dass niemand gehen durch alle lästige Auspacken.

Der üblicher Begriff dafür ist einfach, „Verpackung“.

Dies ist, was Spiele-Entwickler tun mit f.ex Sonys SecuROM .

Aber alle Verpackungs Programme haben die gleichen Nachteile:

  1. Sie lassen sich mit Reverse Engineering und der Verschlüsselungsschlüssel muss im binären eingebettet werden
  2. Sie in der Regel Geld kosten, und diejenigen, die dies nicht tun ( UPX ) sind leicht ausgepackt .
  3. Plattform Inkompatibilität Probleme können durch das Entpacken eingeführt werden.
  4. Verpackt Binärdateien sind in der Regel Anti-Viren ausflippen.

Unternehmen, dass die Verwendung Packer in der Regel Binärdateien versenden die in der Lage sein muss, auf jedem denkbaren Computer auszuführen. Wenn Sie es wirklich gemeint, ich denke, man jede einzelne dll mit einem eindeutigen Schlüssel ausgeliefert verschlüsseln kann und dann benötigen sie ran mit Internetzugang für einige Challenge-Response-Magie während der Entschlüsselungsphase sein. Overkill auf jeden Fall.

Sie können auch Ihre eigenen Packer, machen aber glauben Sie mir, wenn ich es sagen: Sie wollen nicht, dorthin zu gehen;)

Kurz gesagt, was Sie wollen, ist nicht einfach, selbst für die großen Spieler zu erreichen. Wie lange dauert es, ein SecuROM Spiel auf Pirate Bay zu zeigen? Das einzige, was Sie tun können, ist „die Messlatte höher“ und die Hoffnung durch die gute unbemerkt Reverse-Ingenieure.

Schließlich wissen, was Sie sich einlassen: Wird es lohnt sich für Sie? Angenommen, Sie haben die DLL ausgepackt ausgeliefert - wie es ist. Die Menschen werden immer noch müssen sie Reverse-Engineering, es zu benutzen. Wer nutzt undokumentierte 3rd-Party-Bibliotheken überhaupt? Ich habe nur getan, einmal oder zweimal in den Momenten des Wahnsinns.

Andere Tipps

Nun, nicht die Versammlung in erster Linie verteilen. Sobald Montage in der freien Natur aus ist, kann jeder sie verwenden. Sie können dies schwieriger von Verschleierungs , aber „Einstiegspunkte“ wird noch da und nutzbar sein .

Theoretisch kann man etwas tun, mit CAS , aber ich bin nicht besonders sicher, dass diese überhaupt möglich ist.

Vielleicht können Sie die Lizenzierung / Kopierschutz-Tools verwenden, um Ihre DLL zu ändern. Und im Inneren des Anrufers, stellen Sie die erforderliche Lizenznummer.

Dies ist nicht vollständig möglich. Wenn Sie Ihren Code ausgeführt werden soll, muss es ausführbar sein. Sie können bei den Kontrollen setzen, Verpackung, Verschlüsselungsschlüsseln, Aufpasser, Monitore, Wärtern und verschiedene Lizenzsysteme, aber am Ende des Tages, wenn Ihr Code funktioniert es entsperrt werden muss irgendwie so, dass es verwendet werden kann.

Aus diesem Grund funktioniert DRM nicht. Sie wollen X schützen, aber Sie wollen jemanden, der es zu sehen. Das Problem ist die Person, die Sie wollen nicht sehen / mit X und die Person, die Sie wollen mit X sind, auf einer bestimmten Ebene, die gleiche Person .

habe ich so satt mit mit 3rd-Party-Lizenzcode zu tun (Brechen / Aufheben der Registrierung / denke, ich war nicht ein legit Benutzer, als ich eigentlich sein sollte), dass ich ein FSF-Mitglied wurde. Es ist nicht wert, meine Zeit zu Arbeit um jemandem andere Einschränkungen sind, und es ist nicht wert, meine Zeit mit ihnen zu beschäftigen. Deren Code war nicht so besonders.

Wenn Sie starke Benennung Ihrer Baugruppen, sollten Sie mit der DeployLX Lizenzierung .

Sie haben die Kontrollen in den DLL hinzufügen, um sicherzustellen, dass der Anrufer Sie. Aber das wirft andere Herausforderungen:

Wie Sie beweisen, dass Sie Sie auf eine DLL sind. (Sie könnten etwas überprüfen einfacher wie der aktuelle Benutzername, aber das ist vielleicht nicht perfekt sein).

Sie können verlangen, dass die EXE-Datei von Ihrem Zertifikat signiert ist.

Sie sollten die Lizenzierungsinfrastruktur überprüfen. Ich habe keine Ahnung, wie es zu implementieren, aber Sie verwenden sie durch eine .licx-Datei erstellen und dann, denke ich, der Build-Prozess verwendet das lc.exe Tool etwas einzubetten die Lizenz zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top