Sie können jede Baugruppe oder ausführbare dekompilieren, die eine .NET-Sprache verwendet (das gleiche gilt für Java) kompiliert wurde. Dies liegt daran, .NET-Sprachen in den sogenannten kompiliert werden common intermediate language, die tatsächlichen Maschinencode isn't. So können Sie diese Datei einfach in Code dekompilieren. Je nachdem, welches Werkzeug für die Dekompilierung verwendet wird, haben Sie eine gute Chance, den Code so zu dekompilieren, als ob er vor der Kompilierung wäre. Das bedeutet, dass Sie leicht verstehen, was der Entwickler des Programmierers in den Code geschrieben hat.
Aber in vielen Fällen wirst du nicht wirklich für diese so viel kümmern. Zuerst gibt es nicht viele Leute, die diesen Code wirklich lesen würden, oder haben Sie jemals den JavaScript-Code einer berühmten Webseite gelesen, die sogar direkt lesbar ist?? Auch wenn es einige gibt, die daran interessiert sind, Ihren Code zu lesen, werden die meisten eine harte Arbeit haben, verstehen es sowieso on the fly. Dies setzt eine lange und harte Arbeit voraus, die die meisten Entwickler nicht tun werden. Sie können es nur härter machen zu lesen, dass der dekompilierte Code mit einem Obfuscator, diese Art von encrpyts Ihren Code vor der Compilation-Prozess macht es schwer, den Code zu verstehen, wenn die exe erstellt wurde.
Betrachten Sie diesen Code:
var myVariable = "Some Text";
var anotherVariable = myVariable;
DoSomething(anotherVariable);
Ganz selbsterklärend Code, es oder? Nun werden die folgenden berücksichtigen, die hergestellt werden können unter Verwendung von DotFuscator z.B .:
var a="Some Text";var b=a;hksdshd(b);
viel schwerer zu verstehen, was dieser Code tut es oder?Im Grunde ersetzt ein Obfuscator einfach alle Kennungen in Ihrem Code durch zufällige Zeichen, was es ziemlich schwer macht zu erraten, was die beabsichtigte Verwendung oder Bedeutung ist. Danach wird dieser verschlüsselte Code wie jeder andere Code in eine Assembly oder eine ausführbare Datei kompiliert. Wenn dann jemand Ihr Programm wirklich dekompiliert, bekommen Sie nur schwer lesbare Namen und Fragmente.
Nachdem dies gesagt wurde, ist es ziemlich schwierig, Ihre App wirklich davor zu schützen, von irgendjemanden gelesen zu werden, und in den meisten Fällen ist dies nicht das, was Sie zu sehr beachten sollten. In der Regel, was Sie schützen möchten, ist Ihre Daten, z. die Informationen werden in einer Datenbank gespeichert.
Sie können auch einen Blick auf this question werfen, die sich etwas genauer mit den Verschleierungstools beschäftigt.
Sie können * jede * Assembly oder ausführbare Datei, die mit einer .NET-Sprache kompiliert wurde, dekompilieren. Dies hat nichts mit der Verwendung der Release- oder Debug-Konfiguration zu tun. Wenn Sie dies wirklich vermeiden oder zumindest schwer machen wollen, verwenden Sie einen Obfuscator. Was Sie jedoch wirklich speichern möchten, ist nicht Ihr Programm, sondern Ihre Daten, daher wird oft keine Verschleierung benötigt. – HimBromBeere
@HimBromBeere Danke, kann jemand meine .exe-Datei in Code konvertieren oder nicht? – alihaghdoust9
Ja, umsonst. Sie können es nur schwerer machen, den konvertierten Code * zu lesen. – HimBromBeere