Es gibt viele Dekompilierungswerkzeuge unter .net: dnspy, Reflector, ILSpy usw
Du kannst das kompilierte .exe Programm direkt debuggen, die Werte im Speicher anzeigen und sogar den Quellcode direkt ändern.
Wie erkennt unser Programm also, dass es debugget oder dekompiliert wird?
Beim normalen Starten der Anwendung doppelklickt der Benutzer normalerweise auf die Anwendung, um zu starten, und der übergeordnete Prozess ist "Explorer"; wir müssen nur prüfen, ob der übergeordnete Prozess korrekt ist.
Die verschiedenen Werte, die durch Doppelklick zum Ausführen, cmd start und dotnet start erhalten werden, sind wie in der untenstehenden Abbildung dargestellt:
Wenn der Name des übergeordneten Prozesses nicht Explorer ist, beendet sich das Programm.
.NET Core muss folgendes Paket installieren, der Befehl lautet wie folgt:
Der Code lautet wie folgt:
|