Gründe für die Verwendung der Verbergung
Ein Reverse Engineering von Programmen, die für .NET geschrieben wurden, ist kein schwieriges Unterfangen. Dies liegt nicht etwa an irgendwelchen Fehlern im Entwurf von .NET, sondern ist eine logische Konsequenz aller modernen Sprachen, die über Zwischencode kompiliert werden. .NET verwendet eine aussagekräftige Dateisyntax für die Übermittlung von ausführbarem Code, die so genannte MSIL (Microsoft Intermediate Language). Die Zwischendateien sind auf einer weitaus höheren Ebene als binärer Maschinencode angesiedelt und enthalten daher viele Bezeichner und Algorithmen, die direkt zu erkennen und letzten Endes leicht nachzuvollziehen sind. Schließlich ist es nicht leicht, auf der einen Seite leichte Verständlichkeit, Flexibilität und Erweiterbarkeit anzustreben und auf der anderen Seite gleichzeitig wesentliche Informationen verbergen zu wollen.
Somit ist ein Reverse Engineering von Code mithilfe eines frei verfügbaren .NET-Decompilers für jedermann möglich. Auf einmal sind Softwarelizenzierungscode, Kopierschutzmechanismen und proprietäre Geschäftslogik leichter einzusehen als zuvor, ob auf legale oder nicht legale Weise. Jeder kann die Details der Software aus ganz beliebigen Gründen untersuchen. So lassen sich Sicherheitsmängel ausnutzen, neuartige Ansätze kopieren, Kopierschutzmechanismen aushebeln usw.
Dies muss kein Risiko oder ein unüberwindbares Hindernis darstellen. Organisationen, die sich um ihr geistiges Eigentum bei Verwendung der .NET-Plattform sorgen, müssen wissen, dass es eine Lösung für das Problem des Reverse Engineering gibt. Die Verbergung ist ein Verfahren, mit dem Symbole in Assemblys konsistent umbenannt werden können. Außerdem bietet es noch weitere Möglichkeiten, eine Dekompilierung zu vereiteln. Bei richtiger Anwendung kann durch Verbergen der Schutz vor Dekompilierung um ein Vielfaches erhöht werden, wobei die Anwendung intakt bleibt.
© 2002-2007 PreEmptive Solutions. Alle Rechte vorbehalten.