Puisque l’obfuscateur .net est utilisé dans le projet, de nombreux modèles sont recherchés en ligne, tels que Dotfuscator, xeoncode, foxit, etc.
Mais la plupart des frais, bien sûr, sont des versions piratées, et l’entreprise exige que les logiciels piratés ne puissent pas être utilisés.
Après avoir cherché longtemps, j’ai finalement trouvé ConfuserEX, et c’était correct à utiliser, alors je l’ai rapidement sorti et partagé avec vous.
Comme il existe peu d’introductions chinoises sur Internet, je vais faire un test ici pour vous le montrer :
1. Créer une nouvelle bibliothèque de classes C#, je ne changerai pas le nom, je l’appellerai simplement ClassLibrary1, et j’ajouterai une méthode simple sous la classe Class1.cs :
2. Créer une autre application console, ConsoleTest, ajouter un ClassLibrary1.dll de référence, et appeler la méthode de test dans ClassLibrary1.Class1 dans la méthode principale :
Après compilation, ouvrez la ConsoleTest.exe avec ILSpy, et vous pouvez voir le code source comme montré ci-dessous :
3, Essayons maintenant de confondre avec ConfuserEx :
Après avoir téléchargé ConfuserEx, décompressez-le et ouvrez la ConfuserEx.exe, comme montré dans la figure suivante :
4. Voir la demande « Glisser les modules d’entrée ici » ?
Alors mets la ConsoleTest.exe tout à l’heure, comme montré sur la photo ci-dessous :
5. Cliquez sur Paramètres
- Select Packer
- Modules->ConsoleTest.exe
- Cliquez sur le signe + pour les règles, vrai
Comme montré ci-dessous :
6. Cliquez sur Protester ! - >Protéger ! , provoquant une exportation réussie (dans le répertoire Confused),
7. Ouvre avec ILspy... Confus, regardez ConsoleTest.exe le code source :
Si la méthode est vide, copiez le ClassLibrary1.dll des dépendances de ConsoleTest.exe dans le répertoire Confused, cliquez sur Exécuter ConsoleTest.exe, et générez le bon résultat.
Note
8. Si vous ne faites que confondre le fichier exe, c’est normal, si vous confondez simplement un fichier dll, vous verrez l’erreur suivante :
Erreur : Pas de module exécutable, pas de corps exécutable ?
N’y a-t-il pas de fichier exe ? Mettons le ConsoleTest.exe dedans et confondons-le avec ClassLibrary1.dll, regarde.
9. Selon la méthode précédente, j’ai glissé et déposé le ConsoleTest.exe et ClassLibrary1.dll dans ConfuserEx pour les confondre ensemble.
Comme montré ci-dessous :
Succès rapide.
10. Mais on l’a rouvert... Je suis confus, je n’ai trouvé que des fichiers confus ConsoleTest.exe, où ClassLibrary1.dll allé ?
Tu ne peux pas confondre le fichier dll ?
Ne vous inquiétez pas, allons cliquer ConsoleTest.exe essayer, oh, j’y vais, ça fonctionne bien, comme montré sur la photo ci-dessous :
La seule explication ici est que ConfuserEx intègre la DLL dans l’exe.
Maintenant, le ConsoleTest.exe confus fait 17 Ko, tandis que le ConsoleTest.exe original fait 5 Ko, et le ClassLibrary1.dll fait aussi 5 Ko.
11. Utilisons ILSpy pour voir les ConsoleTest.exe générés après avoir confondu ConsoleTest.exe et ClassLibrary1.dll en même temps.
Je ne vois pas la méthode, ni le fichier dll référencé.
Bon, c’est tout pour aujourd’hui.
Attaché: Comme je n’ai pas trouvé de moyen de confondre la DLL séparément à midi, cet élève a trouvé une solution dans l’après-midi @四毛的家, et j’ajouterai comment confondre la DLL séparément.
Selon l’étape 8, nous avons constaté qu’une erreur était signalée lors de la confusion de la DLL selon la méthode EXE, et nous aurions dû suivre les étapes ci-dessous :
Après avoir glissé la dll dans ConfuserEx, vous ne pouvez pas sélectionner Packer dans les Paramètres, mais cliquez sur le bouton crayon à droite, comme montré ci-dessous.
Après avoir cliqué sur le bouton crayon, la boîte de dialogue Modifier la règle s’affiche, je sélectionne un élément dans le Preset, je sélectionne Maximum ici, puis je clique sur le bouton « + » ci-dessous, je sélectionne anti-ildasm (je suppose pour éviter la compilation via IL), et l’export est réussi.
Nous utilisons ILSpy pour vérifier le ClassLibrary1.dll qui vient d’être confondu, comme montré dans la figure ci-dessous,
Rien ne peut être vu.
Pour tester la DLL obfusquée disponible, j’ai mis le ConsoleTest.exe non obfusqué et le ClassLibrary1.dll obfusqué dans un seul répertoire, j’ai cliqué sur Exécuter ConsoleTest.exe, et j’ai réussi.
|