Wie schütze ich mein Projekt vor dem Auslesen ?
Ich stelle euch heute vor, wie man am besten ein .Net-Projekt schützt, da im VB-paradise oft danach gefragt wurde, wie das denn geht. Dazu benutze ich den Eazfuscator .Net von Oleksiy Gapotchenko (Projektseite).
Dann stellen wir mal was klar:
Womit schütze ich:
Zum Schützen von Code benutzt man einen Obfuscator. Diese Obfuscator machen aus dem fertigen Build eine Blackbox.
Was ist eine Blackbox:
Eine Blackbox beschreibt ein komplexes System, bei welchem man nur das äußere sieht. Das was drin steckt kann man nur vermuten. Der Name kommt von der Vorstellung: etwas ist in einer schwarzen Schachtel und die Schachtel ist so dunkel, dass man selbst mit einer Lampe reinleuchtet nicht erkennt was in der Kiste ist.
Ist das auch 100%ig sicher:
Nein. Jeder Code, den man mit Bezug auf das .Net-Framework schreibt, wird in CIL umgewandelt. Dies ist eine eigene Sprache für sich und wird von einem Interpreter ausgelesen und dann ausgeführt. Das entspricht dem JIT-Debuggen (Just-In-Time Debugging) heißt aber JIT-Kompilieren, da hier ja nicht nach Fehler gesucht wird, sondern es ausgeführt werden soll.
Da dieser Interpreter den CIL-Code noch lesen können muss, heißt das somit schon, dass selbst geschützter Code noch auslesbar ist und somit nicht zu 100% geschützt ist.
Warum schütze ich dann eigentlich:
Das erschwert es den Decompilern (Gegenteil vom Compiler = Binary -> text/plain) das Erzeugen eures Codes oder verhindert es sogar.
Was brauche ich:
- Man braucht eine Sprache, die obfuskiert werden kann(mit Eazfuscator .Net sollen alle .Net-Sprachen funktionieren)
- und eine Visual Studio IDE ab 2005, die das PlugIn unterstützt
Die Installation
Ihr downloadet euch unten aus den Quellen, den .msi-Installer und schließt schon einmal alle Fenster von Visual Studio. Danach führt ihr den Installer aus und bestätigt ggbf. erscheinende Meldungen zur Sicherheit von Microsoft mit "Ja" und/oder mit "Ok".
Danach sollt ihr ein Lizenzabkommen bestätigen.
Hauptsächlich geht es darin darum, dass ihr den Obfuscator für jedes Projekt, somit auch kommerzielle, aber auf eigene Gefahr verwenden dürft.
Nach dem Einverständnis mit dem Lizenzabkommen sollt ihr den Installationspfad angeben.
Danach kommt kurz ein Ladebalken und ein Abschlussdialog mit weiteren Informationen.
Gefunden ? und die Optionen
Nach dem ihr Eazfuscator .Net erfolgreich installiert habt könnt ihr sofort wieder eure Projekte öffnen. Schon ohne überhaupt ein Projekt geöffnet zu haben, kann man im Extras-Menu einen Eintrag finden für den "Eazfuscator .Net Assistant".
Im Hauptdialog spricht jedes Feld für sich. Geschweige denn man kann Englisch
Oben rechts lässt sich der Einstellungen-Button finden. Dieser öffnet einen Dialog für folgende Einstellungsmöglichkeiten:
- Nicht auf Updates überprüfen
- Fail-Safe benutztenDiese Option ändert den Projekteintrag so um, dass beim Portieren und öffnen in anderen IDEs (z.B. auf anderen PCs) die IDE keine Fehler gibt, wenn Eazfuscator .Net nicht installiert ist, und das Erstellen somit nicht verhindert. Somit wird beim Fehlen des Eazfuscator .Net auch nichts obfuskiert.
- Obfuskieren ausschaltenSolange wie diese Option gecheckt ist, wird nicht obfuskiert, aber ein Eintrag in die Projekte gemacht.
Wie verwendet man ihn richtig ?
Das Verwenden ist noch einfacher als das Installieren. Einfach den Eazfuscator .Net-Dialog öffnen und das Projekt in den grünen Bereich ziehen.
Danach kommt kurz ein Dialog mit Ladebalken, der den Erfolg bestätigt.
Doch das Eazfuscator .Net das Projekt verändert hat stellt Visual Basic/CSharp/Studio schnell fest und fordert zum Neuladen auf. Dies einfach bestätigen und weiter arbeiten.
Und wie krieg ich den jetzt wieder raus ?
Einfach das Projekt in den roten Bereich des Eazfuscator .Net-Dialogs ziehen und das Projekt neu laden lassen.
Ich hoffe, dass hat euch einen guten Einblick mit dem Umgang von Eazfuscator .Net geboten. Es gibt aber nicht nur Eazfuscator .Net. Ein weiterer weitverbreitete Obfuscator ist .Net Reactor. Doch dieser ist ShareWare und somit nicht für jeden auf Dauer kostenfrei erhältlich. Dieser Thread hier im Forum zeigt wie wirksam so ein Obfuscator sein kann: Was ist das ? verschlüsselt ?
Eine vollständig bebilderte Version gibts auf joshua-behrens.de/index.php?p=post001
Gruß Mangafreak
Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „Mangafreak1995“ () aus folgendem Grund: Homepagelink aktualisiert, Eazfuscator auf Anfrage verlinkt