Il existe de nombreux outils de décompilation sous .net : dnspy, Reflector, ILSpy, etc
Vous pouvez déboguer directement le programme de .exe compilé, consulter les valeurs en mémoire, et même modifier le code source directement.
Alors, comment notre programme détecte-t-il qu’il est débogué ou décompilé ?
Lors du démarrage normal de l’application, l’utilisateur double clic généralement sur l’application pour démarrer, et son processus parent est « explorer », il suffit de vérifier si le processus parent démarré est correct.
Les différentes valeurs obtenues en double-cliquant pour exécuter, cmd start et dotnet start sont telles que montrées dans la figure ci-dessous :
Si le nom du processus parent n’est pas explorer, le programme se ferme.
.NET Core doit installer le package suivant, la commande est la suivante :
Le code est le suivant :
|