Wie einfach ist es, den verschleierten Code von .net zu rekonstruieren?

8

Es gibt ein paar Programme auf dem Markt, die Sie benutzen können, um Ihren .net-Code zu verschleiern, meine Frage ist, wie einfach es für jemanden ist, an Ihre IP zu kommen, wenn Ihr Code "so genannt" verschleiert ist.

Ist das Verschleiern von .net-Code lediglich Gummihühnersicherheit? Oder ist es gut genug, um Ihre Rechte am geistigen Eigentum wirklich zu schützen?

    
JL. 28.09.2009, 19:22
quelle

6 Antworten

8

Das hängt vollständig vom Obfuscator ab.

Verschleierung im Allgemeinen macht es sehr gut, es viel schwieriger zu machen, Reverse Engineering - aber es verhindert es keineswegs. Die CLR wird immer die verschleierte IL entziffern müssen, so dass eine engagierte Person immer dasselbe tun kann.

Die meisten Softwarelizenzen und -sicherungen machen jedoch zwei Dinge:

  • Verhindert versehentliches Überladen
  • Verhindert gelegentliche Versuche, die Lizenzierung zu umgehen

Verschleierung (in Kombination mit einem ordnungsgemäßen Lizenzierungsschema) verhindert beides sehr effektiv. Es ändert eine einfache Prozedur zu einer viel komplizierteren Aufgabe.

    
Reed Copsey 28.09.2009, 19:26
quelle
11

Verschleierung ist wie ein Türschloss ... es hält die ehrlichen Leute ehrlich.

    
Abram Simon 28.09.2009 19:26
quelle
6
___ answer1488904 ___

Verschleierung ist wie ein Türschloss ... es hält die ehrlichen Leute ehrlich.

    
___ answer1488907 ___

Das hängt vollständig vom Obfuscator ab.

Verschleierung im Allgemeinen macht es sehr gut, es viel schwieriger zu machen, Reverse Engineering - aber es verhindert es keineswegs. Die CLR wird immer die verschleierte IL entziffern müssen, so dass eine engagierte Person immer dasselbe tun kann.

Die meisten Softwarelizenzen und -sicherungen machen jedoch zwei Dinge:

  • Verhindert versehentliches Überladen
  • Verhindert gelegentliche Versuche, die Lizenzierung zu umgehen

Verschleierung (in Kombination mit einem ordnungsgemäßen Lizenzierungsschema) verhindert beides sehr effektiv. Es ändert eine einfache Prozedur zu einer viel komplizierteren Aufgabe.

    
___ answer1488910 ___

Verschleierung sollte niemals wegen Sicherheit verwechselt werden.

.NET Reflector macht es ziemlich einfach, den meisten .NET-Code umzukehren. Sie erhalten möglicherweise keine sehr variablen Variablen- und Methoden / Methoden-Parameternamen, aber jeder, der daran interessiert ist, Ihr geistiges Eigentum zurückzuentwickeln, wird genug Informationen dafür haben.

Wenn Sie einen strengen Schutz Ihres geistigen Eigentums benötigen, sollten Sie in Erwägung ziehen, kritische Teile Ihres Codes zu nehmen und sie nur als Webdienste verfügbar zu machen. Alternativ können Sie auch Tools wie HASP in Erwägung ziehen, die Ihrem Produkt eine Stufe der Verschlüsselung und des Schutzes gegen Debugging / Reverse-Engineering hinzufügen.

Wenn beides nicht möglich ist ... erwäge einige gute Anwälte zu engagieren.

    
___ answer1488902 ___

Nichts ist gut genug, um geistige Rechte zu schützen. Wenn jemand wirklich Ihre App zurückentwickeln möchte, kann er das tun.

Am besten fügen Sie Ihrem Code einige Copyright-Aussagen hinzu. Verschleierung hilft jedoch ein wenig, da Sie einige Anstrengungen in das Reverse Engineering stecken müssen, was bedeutet, dass die meisten Menschen sich nicht die Zeit dafür nehmen.

Ein weiterer Schritt könnte sein, es zu kompilieren.

Wenn Sie eine öffentliche API erstellen, stellen Sie sicher, dass Sie einige tolle XML-Kommentare zu den öffentlichen Methoden haben, oder noch besser, verschleiern Sie die Parameter dort nicht:)

    
___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ answer1488905 ___

Es ist einfach genug für jeden, der entschlossen ist, Ihre IP zu bekommen.

Soweit es um "Sicherheit" geht, ist Sicherheit durch Dunkelheit nur geringfügig sicherer als keine Sicherheit (die tatsächlich sicherer ist als schlechte Sicherheit).

Meine Regel war schon immer: Halte die ehrlichen Menschen ehrlich. Stellen Sie sicher, dass Ihr geistiges Eigentum durch Patentanmeldungen rechtlich geschützt ist und lassen Sie sich von einem Rechtsanwalt eine kompetente Nutzungsbedingungen / EULA ausarbeiten. Verwenden Sie einen anständigen Obfuscator, um zu verhindern, dass Sie herumstochern, aber erkennen Sie, dass es sich nicht um eine One-Shot-Fix-All-Lösung handelt.

Wenn jemand entschlossen ist, Ihren Code rückzuentwickeln, können sie das leider tun, und sie werden es tun.

    
___ qstntxt ___

Es gibt ein paar Programme auf dem Markt, die Sie benutzen können, um Ihren .net-Code zu verschleiern, meine Frage ist, wie einfach es für jemanden ist, an Ihre IP zu kommen, wenn Ihr Code "so genannt" verschleiert ist.

Ist das Verschleiern von .net-Code lediglich Gummihühnersicherheit? Oder ist es gut genug, um Ihre Rechte am geistigen Eigentum wirklich zu schützen?

    
___ qstnhdr ___ Wie einfach ist es, den verschleierten Code von .net zu rekonstruieren? ___
Justin Niessner 28.09.2009 19:25
quelle
4

Verschleierung sollte niemals wegen Sicherheit verwechselt werden.

.NET Reflector macht es ziemlich einfach, den meisten .NET-Code umzukehren. Sie erhalten möglicherweise keine sehr variablen Variablen- und Methoden / Methoden-Parameternamen, aber jeder, der daran interessiert ist, Ihr geistiges Eigentum zurückzuentwickeln, wird genug Informationen dafür haben.

Wenn Sie einen strengen Schutz Ihres geistigen Eigentums benötigen, sollten Sie in Erwägung ziehen, kritische Teile Ihres Codes zu nehmen und sie nur als Webdienste verfügbar zu machen. Alternativ können Sie auch Tools wie HASP in Erwägung ziehen, die Ihrem Produkt eine Stufe der Verschlüsselung und des Schutzes gegen Debugging / Reverse-Engineering hinzufügen.

Wenn beides nicht möglich ist ... erwäge einige gute Anwälte zu engagieren.

    
LBushkin 28.09.2009 19:27
quelle
1

Nichts ist gut genug, um geistige Rechte zu schützen. Wenn jemand wirklich Ihre App zurückentwickeln möchte, kann er das tun.

Am besten fügen Sie Ihrem Code einige Copyright-Aussagen hinzu. Verschleierung hilft jedoch ein wenig, da Sie einige Anstrengungen in das Reverse Engineering stecken müssen, was bedeutet, dass die meisten Menschen sich nicht die Zeit dafür nehmen.

Ein weiterer Schritt könnte sein, es zu kompilieren.

Wenn Sie eine öffentliche API erstellen, stellen Sie sicher, dass Sie einige tolle XML-Kommentare zu den öffentlichen Methoden haben, oder noch besser, verschleiern Sie die Parameter dort nicht:)

    
cwap 28.09.2009 19:26
quelle
1

Es ist einfach genug für jeden, der entschlossen ist, Ihre IP zu bekommen.

Soweit es um "Sicherheit" geht, ist Sicherheit durch Dunkelheit nur geringfügig sicherer als keine Sicherheit (die tatsächlich sicherer ist als schlechte Sicherheit).

Meine Regel war schon immer: Halte die ehrlichen Menschen ehrlich. Stellen Sie sicher, dass Ihr geistiges Eigentum durch Patentanmeldungen rechtlich geschützt ist und lassen Sie sich von einem Rechtsanwalt eine kompetente Nutzungsbedingungen / EULA ausarbeiten. Verwenden Sie einen anständigen Obfuscator, um zu verhindern, dass Sie herumstochern, aber erkennen Sie, dass es sich nicht um eine One-Shot-Fix-All-Lösung handelt.

Wenn jemand entschlossen ist, Ihren Code rückzuentwickeln, können sie das leider tun, und sie werden es tun.

    
Alan 28.09.2009 19:26
quelle

Tags und Links