2010-03-10 27 views
11

Ich habe eine Visual Studio 2008-Lösung mit einer Anzahl von DLLs und Web-Anwendung verwendet sie als Hauptprojekt. Es ist eine kommerzielle Bank- und Buchhaltungssoftware (Thin Client), und ich möchte nicht, dass ein Kunde unter Umgehung von mir Zugang zur Quelle erhält.Wie verschleiern Web-App vor der Veröffentlichung?

Ich möchte alle resultierenden Assemblies verschleiern, bevor Sie sie über das Menü Veröffentlichen auf einem Webserver veröffentlichen.

Wie kann ich das tun? Wie wird der Verschleierungsschritt vor dem Erstellen und Veröffentlichen eingefügt? Verwenden von Msbuild?

Edit: Danke an alle für die Beantwortung! Aber meine Frage betrifft eher die konkrete Aufgabe (Verschleierung in VS beim Publizieren) als das Verschleiern im Allgemeinen.

+0

korrigieren Sie mich, wenn ich falsch bin, aber Sie die resultierenden Baugruppen nicht den Quellcode verschleiern .. – Peter

+0

@Petoj: Ja, sicher, danke.Ich habe meinen Posten qualifiziert. Aber tatsächlich gibt es einen existierenden Begriff: verschleierter Code http://en.wikipedia.org/wiki/Obfuscated_code – abatishchev

+0

Sie werden nicht bis zur letzten Minute warten wollen, um zu verschleiern (wenn Sie sich dazu entschließen) ... Sie werden Ich möchte beginnen, die Ergebnisse zu Beginn des Zyklus zu verschleiern und zu testen. Ich habe gerade den Prozess des Nachdenkens durchgemacht, ich könnte es machen, wenn der Code fertig ist ... aber es macht normalerweise etwas kaputt - jetzt empfehle ich, dafür zu entwerfen, um den maximalen Effekt zu erzielen. –

Antwort

1

wo erwartet Entführung von? von Benutzern oder von Hoster? Zuerst sollten Sie keine Quellcodes vor Ort ablegen, sondern nur kompilierte Assemblies. Zweitens sollten Sie Assemblys in Ordnern ablegen, in denen Benutzer nicht darauf zugreifen können. Wenn Sie Angst vor Hoster haben, sollten Sie Obfuscator verwenden, googeln Sie sie dort sind eine Menge auf dem Markt.

+0

@Andrey: Weil ich C# benutze, könnten selbst kompilierte Assemblys leicht gelesen werden. Also möchte ich sie einem Kunden zur Verfügung stellen (auf seinem Server veröffentlichen), aber in verschleierter Form. – abatishchev

0

Senden Sie niemals etwas an den Client, dem Sie nicht vertrauen. Je. Wenn die Sprache, die Sie verwenden, das Senden vertrauenswürdiger Informationen an nicht vertrauenswürdige Clients erfordert, ist das dumm.

1

diesen Beitrag anzeigen: Protect .NET code from reverse engineering?

Effektiv gibt es nichts, was Sie ganz Ihren Code zum Schutz vor Reverse-Engineering tun. Das Beste, was Sie tun können, ist ein Werkzeug wie Dotfuscator.

Wenn Ihr Code funktioniert, sind die Chancen, dass ein ehrlicher Kunde versucht, ihn neu zu schreiben oder zu manipulieren, gering. Wenn der Kunde nicht ehrlich ist, gibt es wenig, was Sie tun können, dass es effektiv ist.

Anstatt sich darum zu sorgen, sorgen Sie sich um die Herstellung von Qualitätsprodukten, die ehrliche Kunden bezahlen.

5

Es gibt mehrere Verschleierungsprodukte da draußen.

Visual Studio wird sogar mit einem - DotFuscator ausgeliefert, obwohl es others gibt.

Hier ist ein DotFuscator documentation.

Aber auch mit Verschleierung kann ein entschlossener Hacker Ihren Code zurückentwickeln.

+5

+1 - Ich würde hinzufügen, dass es nicht nur einen entschlossenen Hacker nicht stoppen wird, es wird sie nur marginal verlangsamen. Ich musste erst einmal sehen, wie die Dinge funktionieren, um Fehler von Drittanbietern zu beheben. Sobald man sich daran gewöhnt hat, ist verschleierter Code nicht viel langsamer als normaler Code mit wirklich schlechten Variablen-/Funktionsnamen. –

1

Ich stimme den obigen Punkten zu, in dem Sinne, dass Sie Code nicht zu einer nicht vertrauenswürdigen Partei freigeben sollten. Verschleierung macht es einfach schwierig für Ihren Code zu verstehen, aber es gibt Mittel und Wege um ihn herum.

Nachdem Sie das gesagt haben, wenn Sie wirklich Ihren Code verschleiern möchten, könnten Sie versuchen Easfuscator.NET.

1

Einige Obfuscatoren unterstützen die Ausführung der Verschleierung als Teil des Build-Prozesses, sodass die veröffentlichte App bereits verschleiert ist.

Crypto Obfuscator ist ein solches Tool - es unterstützt die Integration mit MSBuild, die die Durchführung des Verschleierungsschritts als Teil der Veröffentlichung oder ClickOnce ermöglicht.

Verwandte Themen