Was ist der beste Weg, um die Verwendung/Laden einer DLL mit einer Lizenzdatei zu sichern?Sichern Sie eine DLL-Datei mit einer Lizenzdatei
Antwort
Ein paar Dinge, die Sie vielleicht prüfen:
Prüfsumme der DLL. Mit einem cryptographic hash function können Sie dies in der Lizenzdatei oder in der DLL speichern. Dies bietet eine Überprüfungsmethode, um festzustellen, ob meine ursprüngliche DLL-Datei nicht abgehackt ist oder ob es die Lizenzdatei für diese DLL ist. Ein paar einfache Byte-Swapping-Techniken können Ihre Hash-Funktion schnell von den ausgetretenen Pfaden nehmen (und somit nicht einfach zu reproduzieren).
Speichern Sie Ihren Hash nicht als String, teilen Sie ihn an verschiedenen Stellen in unsigned shorts.
Wie Larry sagte, ist eine MAC-Adresse ziemlich häufig. Es gibt viele Beispiele dafür, wie man das auf The Code Project bekommt, aber sei dir bewusst, dass es heutzutage einfach ist, es zu fälschen.
Mein Vorschlag sollte private/public Schlüssel für die Lizenzgenerierung verwenden.
Kurz gesagt, werden die Angriffsmodi binär sein (ändern Sie die Anweisungen Ihrer DLL-Datei), so schützen Sie sich vor dieser oder Schlüsselgenerierung, so machen Sie jede Lizenz Benutzer, Maschine und sogar die Installation spezifisch.
Sie können nach einer Lizenz innerhalb von DllMain() suchen und sterben, wenn sie nicht gefunden wird.
Es hängt auch davon ab, wie Ihr Lizenzalgorithmus funktioniert. Ich schlage vor, dass Sie mit etwas wie einem Diffie–Hellman key exchange (oder sogar RSA) arbeiten, um eine Art öffentlicher/privater Schlüssel zu generieren, der basierend auf einigen Informationen an Ihre Benutzer weitergegeben werden kann.
(Abhängig von der Anwendung, ich kenne einen Fall, wo ich den Lizenzcode auf Vertrag für eine Firma geschrieben, sie verwendet eine MAC address und einige andere Daten, Hash es, und verschlüsselt den Hash, geben ihnen den "Schlüssel Wert ", wenn die Registrierungsnummer korrekt war. Dadurch wird sichergestellt, dass die Schlüsseldatei nicht auf eine andere Maschine verschoben (oder weitergegeben) werden kann, wodurch die Software "gestohlen" wird.
Wenn Sie tiefer graben wollen und Hacker zu vermeiden, das ist ein ganz ‚weiteres Thema ....
- 1. Wie kann ich eine "enabled functions" Lizenzdatei für mein Programm sichern?
- 2. Sichern einer Ajax-Anfrage
- 3. Wie sichern Sie eine Android App?
- 4. So sichern Sie solrcloud?
- 5. Sichern einer HTTPS-Verbindung
- 6. Sichern Sie meine Webdienste
- 7. Sichern einer API mit gemeinsamem Geheimnis
- 8. Wie kann ich eine Ruby-Website mit einer Datenbank sichern?
- 9. Wie sichern Sie database.yml?
- 10. Sichern Sie eine Oracle-DB, die mit TDE verschlüsselt wurde
- 11. IntelliJ Maven/Git Auto-Prepend Lizenzdatei/Header
- 12. AbotX Lizenzdatei in einer Web (MVC) App funktioniert nicht
- 13. Infragistics-Lizenzdatei fügt sich zum Projekt hinzu?
- 14. So sichern Sie SonarQube 5.4?
- 15. So sichern Sie meinen Code
- 16. Sichern Sie eine einzelne Tabelle mit ihren Daten aus einer Datenbank in SQL Server 2008
- 17. Wie man Lizenzdatei in setup.py-Skript einfügt?
- 18. So sichern Sie Redis Cluster?
- 19. Sichern und Wiederherstellen mit VirtualBox
- 20. Überprüfen Sie, ob eine Lizenzdatei für die aktuelle kopiergeschützte Assembly erstellt wurde
- 21. So sichern Sie eine XML-Datei in Windows Phone 7
- 22. Sichern einer Zeichenfolge, die ausgeführt wird
- 23. Sichern Sie einige Mysql-Tabellen mit chmod zu schreiben?
- 24. Sichern einer API für die Verwendung mit JavaScript-Widget
- 25. Django - Links generiert mit {% url%} - wie kann man sie sichern?
- 26. NodeJS + Express: Wie man eine URL sichern
- 27. Sichern einer Verbindung mithilfe von TOR
- 28. Wie kann ich eine SQL-Datenbank mit PHP sichern?
- 29. So sichern Sie bestimmte MySQL-Tabelle mit C#
- 30. Sichern Sie einen Download-Link nach der Zahlung mit PayPal
DO lesen, was Sie in DllMain tun dürfen, es ist nicht viel! – MSalters