Sollte ich besorgt sein über die Verschleierung von meinem .NET-code?[geschlossen]

StackOverflow https://stackoverflow.com/questions/12075

  •  08-06-2019
  •  | 
  •  

Frage

Ich bin sicher, dass viele Leser auf SO verwendet haben Lutz Roeder's .NET Reflektor zu dekompilieren, Ihre .NET-code.Ich war erstaunt, wie genau der Quelltext könnte recontructed von unseren kompilierten Assemblys.

Ich wäre daran interessiert zu hören, wie viele von Ihnen verwenden Verschleierung, und für welche Art von Produkten?

Ich bin sicher, dass dies ein viel Wichtigeres Problem für, sagen wir, ein .NET-Anwendung, die Sie anbieten zum download über das internet im Gegensatz zu etwas, das gebaut bespoke für einen bestimmten client.

War es hilfreich?

Lösung

Ich würde nicht sorgen über es zu viel.Ich würde lieber focus on putting out ein Super Produkt, immer eine gute Nutzerbasis und die Behandlung von Ihren Kunden Recht zu haben, als sich sorgen über die minimalen Prozentsatz der Benutzer betrifft, die mit Diebstahl-code, oder suchen an der Quelle.

Andere Tipps

Denken Sie daran, Verbergung ist die Verschlüsselung.IMHO, wenn jemand wahrnimmt Wert im reverse-engineering-Ihre code, Sie werden es tun.Dies gilt auch für verwalteten code oder nativer code, verschleiert oder nicht.Sicher, Verschleierung schreckt den flüchtigen Beobachter, aber ist Ihr Unternehmen tatsächlich bedroht von solchen Menschen?Jeder .NET obfuscation Methode, die ich gesehen habe, macht Ihnen das Leben als Entwickler schwieriger.

Es gibt Dienste, die bieten echte Verschlüsselung, wie SLPS von Microsoft.Finden http://www.microsoft.com/slps/default.aspx

Wir derzeit verschleiern alle unsere Ausgabe, obwohl wir sind ein kleines outfit wer verkauft spezialisierte software, um eine kleine Anzahl von Kunden.

Wir haben diese Entscheidung aus einem ganz einfachen Grund - wir entdeckten ein verärgerter ex-Mitarbeiter war aktiv nähert sich unseren Kunden anfordern binaries - es gab einige Besorgnis, die er beabsichtigte, reverse engineer neue Funktionen, um die konkurrierenden Funktionen.

Natürlich ist er immer noch in der Lage, dies zu tun, wenn er die software nutzt, aber es gibt keinen Grund, zu machen es einfach für ihn.

Keine neuen Verschleierung, aber viele compiler-tricks, die Sie seit 1.1

Zum Beispiel jedes mal, wenn Sie einen anonymen Typ, den Sie bekommen, IL, kompiliert zurück mit einem ziemlich obskuren Namen.Jedes mal, wenn Sie Ertrag bekommen Sie eine ganze neue Klasse, die implementiert IEnumerable und IEnumerator (clever Optimierung, unleserlicher code).Jedes mal, wenn Sie einen anonymen Delegaten erhalten Sie eine neue Methode mit einem Namen, der ungültig ist, die in jedem .Net-Sprache, die ich kenne, aber das ist in Ordnung, in der IL.

@Rob Cooper

Hatte einige Diskussionen mit meinen manager bei der Arbeit, er sagte, er nicht verschleiern, aber nicht NGEN auf "installieren", offenbar das sollte genug sein, um stop Reflektor Arbeit auf Ihrem Baugruppen, aber ich habe keine Ahnung, ob das wahr ist und inwiefern, also bitte nehmen Sie es nicht als Evangelium :)

Dies nicht irgendeine Art von Schutz gegen Demontage.Zuerst Stelle ich mir dessen durchaus möglich, zu extrahieren, raw-Dateien von allen Installations-Paket wie eine MSI-oder eine CAB-Datei.

Aber noch wichtiger ist, Ngen wird auf der client-Maschine, nachdem die Baugruppe installiert wurde.Ngen nur Kräfte, die assembly zu kompilieren jetzt statt später mit dem JIT.Die original-Montage bleibt und ist unverändert und muss es bleiben, weil Ngen möglicherweise nicht in der Lage zu kompilieren Sie die gesamte Baugruppe.

Ngen ist für die Leistung, nicht die Sicherheit, und tut nichts, um zu verhindern, Demontage oder machen es sogar noch etwas schwieriger.

einfach für mich, - wenn Sie brauchen, um Schutz geistigen Eigentums - obfuicate - wenn nicht nicht.

Einfach zu tun, mit den richtigen tools.

Ich denke, zum Teil müssen wir uns ALLE Gedanken über unsere IP :)

Gute Frage, jedoch als etwas, was ich bin interessiert zu wissen mehr über (momentan mache ich nicht verschleiern).

Hatte einige Diskussionen mit meinen manager bei der Arbeit, er sagte, dass er nicht verschleiern, aber nicht NGEN auf "installieren", offenbar das sollte genug sein, um zu stoppen Reflektor Arbeit auf Ihren Baugruppen, aber ich habe keine Ahnung, ob dies wahr ist und inwiefern, also bitte nehmen Sie es nicht als Evangelium :)

Gute Frage :) +1

Wir verwenden keine Verschleierung für "non public" - Anwendungen, aber wir verwenden es für die öffentlichkeit verfügbaren Anwendungen.Die verschleierte app enthält eine fülle an höchst anspruchsvollen Codes, die wir brauchten eine exorbitante Menge an Zeit zu schreiben und das ist der Grund, lassen Sie mich denken, dass die Verschleierung ist ein muss - zumindest in diesem Fall.

Obsfucation ist beschränkt, es ist effektiv, es könnte halten die casual-Kerl entfernt.Die meisten effektive obsfucation ist nur die kleinste Menge an code, die für den Benutzer verfügbar.Wenn Sie können, machen Sie Ihre app ausführen, hängt stark auf ein fat-server.

Stimmen die meisten Menschen, die wissen, wie man code noch ein wenig brauchen nicht zu stehlen, Ihren code!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top