Hallo,
Disassemblieren kann man alles irgendwie, das ist kein Fehler
in .NET! Nur wird es derjenige schwer haben, aus dem
Assemblercode irgendwelche Algorithmen zu extrahieren. Wenn du
schon mal Assembler gesehen hast, weißt du, dass man
wahrscheinlich lieber anderen Beschäftigungen nachgehen würde,
als sich daraus den ursprünglichen Algorithmus
zusammenzubasteln.
Dagegen hätte ich auch nichts auszusetzen, ich hatte schonmal in Assembler programmiert (C64
) das ist wirklich zu unübersichtlich um etwas zurück herleiten zu können.
Was ich allerdings nicht gedacht hätte, ist, dass in dem IL-Code sogar meine Variablenbezeichnungen stehen, die ja sehr vielsagend sein können. Das wusste ich nicht und verstehe auch nicht, warum das so ist, da ja keine Ausführungsumgebung interessiert, ob eine Variable „Vorname“ oder „hdfhjk“ heißt. Ich hätte es also begrüßt, wenn solch ein Obfuscator automatisch mit eingebaut wird. Aber jetzt habe ich mit der Dotfuscator Community Edition auch erstmal eine Möglichkeit gefunden, die ok ist.
Es ist ja schließlich nicht so, dass sich
eine EXE wieder 1:1 in den C++ oder C# oder was auch immer
Quellcode zurückkompilieren ließe. Derartige Methoden gibt es
nicht. Andererseits gibt es keine wirklich wirksamen
Schutzmaßnahmen, um eine Einsicht in den Assemblercode zu
verhinden. Das Programm muss ja schließlich während der
Ausführung als Maschinencode vorliegen. Spätestens dann kann
ich das Ding problemlos mit geeigneten Debuggern
auseinandernehmen. Das ließe sich tatsächlich nur durch das
berüchtigte TCPA verhindern. Wir wollen jedoch alle hoffen,
dass es nie zur Einführung desselben kommen wird.
Über TCPA bin ich nur schlecht informiert. Soweit ich das sehe, betrifft dieses hardwarebasierte Verfahren das komplette Betriebssystem. Dagegen bin ich auch, da das zu leicht missbraucht werden kann. Aber dass ein Programm als Blackbox gehandhabt wird, dagegen hätte ich nichts (was es z.B. im Netz anstellt, könnte man ja dann immer noch feststellen). Aber ob das möglich ist, ist natürlich fraglich. Und das Betriebssystem muss natürlich ausgewogen und vertrauenswürdig sein, also transparent genug und gleichzeitig geschützt genug…
Gruß
Alex