Wie kann ich meinen Source Code schützen?
Ich habe vor einiger Zeit mit C# angefangen. Habe jetzt längere Zeit an einem Projekt gearbeitet, und dieses vor kurzem fertiggestellt.
Ich habe gehört, dass es sogenannte .NET - Decompiler gibt, welche die .EXE wieder zu dem eigentlichen Source-Code umwandeln. Gibt es Möglichkeiten das zu verhindern?
Danke.
3 Antworten
Mit einem Obfuscator.
Allerdings würde ich das nicht empfehlen, da er den Code verändert (das ist ja der Sinn der Sache) und damit das Programm ineffizienter (oder gar fehleranfälliger) machen kann. Zudem kann Reverse-Engineering damit nicht verhindert, sondern allenfalls erschwert werden.
Die meisten Programme/Algorithmen sind nicht annähernd so "schützenswert", wie Du vielleicht denken magst. Reverse-Engineering ist auch ein Haufen Arbeit - oftmals hat man in der Zeit einen Algorithmus auch "cleanroom-implementiert" (also ohne Einsicht des "fremden" Codes nachgebildet).
"Geheimnisse" (z. B. kryptographische Schlüssel, Passwörter, etc.) sollten ohnehin niemals im Programmcode stecken.
Überlege Dir lieber, im Sinne der Open-Source-Bewegung den Programmcode direkt offenzulegen. Davon haben meistens alle Beteiligten mehr - Dir selbst eingeschlossen. Die Reputation, die man durch solche Projekte bekommen kann - sofern sie denn gut umgesetzt sind - ist nicht zu unterschätzen.
Ja es gibt möglichkeiten, die Nennen sich Obfuscator oder Code Scrambler.
https://msdn.microsoft.com/de-de/library/bb979521.aspx
Allenfalls erschweren die den Prozess aber nur und machen ihn nicht unmöglich.
Verhindern kannst du es nicht, aber es ist auch nicht ganz so leicht, wie es sich anhört. Natürlich kann man den compilierten Code wieder zurückübersetzen. Allerdings ist das Resultat sehr schwer lesbar und muss lange analysiert werden.
Wenn du vor einiger Zeit mit C# angefangen hast, musst du dir keine allzu großen Sorgen machen, dass jemand deine Programme decompiliert und deine Ideen stiehlt.