Laden...

Möglichkeiten Binaries vor Crackern zu schützen

Erstellt von BlackMatrix vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.569 Views
B
BlackMatrix Themenstarter:in
218 Beiträge seit 2012
vor 8 Jahren
Möglichkeiten Binaries vor Crackern zu schützen

Hallo,

mir ist klar, dass es keinen 100 prozentigen Schutz gegen Cracker geben wird, schon gar nicht bei .NET Binaries, dennoch würde mich interessieren, wie man die eigene Anwendung möglichst effizient gegen solche Unternehmungen schützt. Das Erwerben einer Lizenz sollte kostengünstiger sein, als die Software zu cracken.

Eine unserer Software benötigt Internetverbindung um funktionieren zu können, daher hatte ich an ein Onlinelizenzsystem gedacht, welches beim Start der Anwendung eine verschlüsselte Verbindung zu unserem Server aufbaut, die Lizenz prüft und im Erfolgsfall eine SessionID an den Client (Software) zurückliefert. Die Features des Clients werden freigegeben und die SessionID wird alle x Minuten an den Server geschickt und es wird überprüft, ob noch andere mit dieser Lizenz online gehen.
Ich denke, die Vorgehensweise ist relativ sicher (falls nicht, korrigiert mich), aber das Problem ist beispielsweise die initiale Authentifizierung. Asynchron wird am Server geprüft, aber das einzige was mein Testcracker trotz obfusktierten Code gemacht hat, ist "Task<bool>" durch "Task<true>" zu ersetzen und schon waren die Features freigeschalten.

Irgendwelche Tipps?

Viele Grüße

BlackMatrix

16.842 Beiträge seit 2008
vor 8 Jahren

Alles zu diesem Thema wurde bereits behandelt - bitte in Zukunft die Forensuche nutzen.
Forumssuche nach Obfuscator
[FAQ] NET Assembly vor Disassembling schützen (Obfuscator)

Und hier hat sich nichts geändert die letzte Zeit.

PS: beim Thema Lizenzierung kann man niemals mit gutem Gewissen von "sicher" sprechen.

B
BlackMatrix Themenstarter:in
218 Beiträge seit 2012
vor 8 Jahren

Mir geht es nicht um irgendwelche Obfuskatoren, die den Code unleserlich machen. Denn das hat mein Obfuskator schon so gut gemacht, dass mein Cracker da gar nicht weiter versucht hat, den Quellcode auszulesen, sondern ist direkt mit Debuggern rangegangen und hat wohl explizit nach Methoden gesucht, die true zurückliefern.
Nun hat er gemeint, man sollte mehrere Methoden erstellen, die das gleiche Ergebnis liefern, aber die Berechnung unterschiedlich lösen. Solche Dinge, die mir auch noch nicht so richtig klar sind und ich Hilfe benötige.

16.842 Beiträge seit 2008
vor 8 Jahren

Es gibt immer irgendeine Stelle, die man einfach nur auf true setzen muss und die Lizenzierung ist "valide".
Eigentlich geht es nur darum, diese Stelle möglichst gut zu verstecken oder zu verschleiern oder redundant zu halten.

185 Beiträge seit 2005
vor 8 Jahren

Du solltest nicht nur eine Abfrage machen, sondern in verschiedenen Methoden. Mit den Rückgaben arbeiten, und die Methoden nicht abbrechen.
Die Methode gibt dann z.B. falsche Werte zurück, die so aber nicht erkennbar sind.

Du kannst auch noch eine Erkennung einbauen, ob sich jemand mit dem Debugger versucht. So etwas hatte ich mal in Delphi eingebaut.