Outils / stratégie d'obfuscation .NET [fermé]


160

Mon produit comporte plusieurs composants: ASP.NET, Windows Forms App et Windows Service. 95% environ du code est écrit en VB.NET.

Pour des raisons de propriété intellectuelle, j'ai besoin d'obscurcir le code, et jusqu'à présent j'utilise une version de dotfuscator qui a maintenant plus de 5 ans. Je pense qu'il est temps de passer à un outil de nouvelle génération. Ce que je recherche est une liste d'exigences que je devrais prendre en compte lors de la recherche d'un nouvel obfuscateur.

Ce que je sais que je devrais rechercher jusqu'à présent:

  • Sérialisation / désérialisation . Dans ma solution actuelle, je dis simplement à l'outil de ne pas masquer les membres de données de classe, car la douleur de ne pas pouvoir charger des données précédemment sérialisées est tout simplement trop grande.
  • Intégration avec le processus de construction
  • Travailler avec ASP.NET . Dans le passé, j'ai trouvé ce problème en raison de la modification des noms .dll (vous en avez souvent un par page) - que tous les outils ne gèrent pas bien.

Plusieurs doublons: google.com/...
John Rasch


Voir Obfuscator Agile.net .NET pour une solution alternative pour masquer votre code. Vérifiez en particulier sa fonctionnalité de virtualisation de code.
sutton bernard

Voir une bonne liste des obfuscateurs d'ArmDot à Xenocode ici sur SO: stackoverflow.com/a/60054/1480104
Artem Razin

Réponses:


44

De retour avec .Net 1.1, l'obscurcissement était essentiel: la décompilation du code était facile, et vous pouviez passer de l'assembly à l'IL, au code C # et le faire recompiler avec très peu d'effort.

Maintenant, avec .Net 3.5, je ne suis pas du tout sûr. Essayez de décompiler un assemblage 3.5; ce que vous obtenez est loin d'être compilé.

Ajoutez les optimisations de 3.5 (bien mieux que 1.1) et la façon dont les types anonymes, les délégués et ainsi de suite sont traités par réflexion (ils sont un cauchemar à recompiler). Ajoutez des expressions lambda, un compilateur «magique» comme la syntaxe Linq et var, et des fonctions C # 2 comme yield(ce qui entraîne de nouvelles classes avec des noms illisibles). Votre code décompilé est loin d'être compilable.

Une équipe professionnelle disposant de beaucoup de temps pourrait encore faire de l'ingénierie inverse, mais il en va de même pour tout code obscurci. Le code qu'ils en tireraient serait impossible à maintenir et très probablement très bogué.

Je recommanderais la signature de vos assemblys par clé (ce qui signifie que si les pirates peuvent en recompiler un, ils doivent tous recompiler) mais je ne pense pas que l'obfuscation en vaille la peine.


128
Pas du tout d'accord. La signature ne peut pas remplacer l'obfuscation. La signature vise à ne pas pirater votre code. Mais si vous voulez cacher votre idée, vos algorithmes, etc., l'obscurcissement est le seul moyen.
Shrike

25
Je ne pense pas que la signature puisse remplacer l'obscurcissement, cela rend juste le piratage beaucoup plus difficile. L'obscurcissement ne parvient pas à cacher votre idée - s'ils veulent copier, ils le feront de toute façon, et l'obfuscation ne rendra même pas les choses beaucoup plus difficiles. En particulier, comme les algorithmes sont tous des opérateurs, l'obscurcissement n'a pas beaucoup d'effet sur eux - ils sont généralement l'une des choses les plus faciles à extraire.
Keith

6
L'obfuscation peut ne pas en valoir la peine si vous parlez d'une équipe avec beaucoup de ressources à sa disposition, mais l'obscurcissement est excellent pour se protéger contre le développeur «moyen» qui ne veut rien de plus que d'utiliser Reflector pour ouvrir votre assemblage et enregistrer le code source en tant que projet et faire des ajustements. L'obscurcissement a sa place et l'exclure complètement est la mauvaise attitude à avoir. C'est une couche de défense.
Razor

5
Lorsque vous décompilez, la source est dans un état désordonné mais logiquement elle suit toujours les mêmes chemins. Il n'y a pas de compilateur vaudou «magique». Je le sais parce que j'avais perdu un référentiel récemment et utilisé réflecteur pour récupérer le code source. L'obscurcissement n'est qu'une douleur à «maintenir», si cela ne fait pas partie de votre processus de construction. Cela ajoute des frais généraux, mais écrivons-nous tous des applications intensives en calcul? Non. C'est une couche de défense faible pour un attaquant faible.
Razor

8
Quelle horrible réponse. Avez-vous essayé la décompilation récemment? Les décompilateurs se sont améliorés , pas pires. Reflector donne une qualité proche de la source d'origine, sans commentaires bien sûr.
BlueRaja - Danny Pflughoeft

50

Nous avons essayé un certain nombre d'obfuscateurs. Aucun d'entre eux ne fonctionne sur une grande application client / serveur qui utilise la communication à distance. Le problème est que le client et le serveur partagent des DLL, et nous n'avons trouvé aucun obfuscateur capable de le gérer.

Nous avons essayé DotFuscator Pro, SmartAssembly, XenoCode, Salamander et plusieurs petites applications dont les noms m'échappent.

Franchement, je suis convaincu que l'obfuscation est un gros hack.

Même les problèmes qu'il aborde ne sont pas entièrement un problème réel. La seule chose que vous devez vraiment protéger est les chaînes de connexion, les codes d'activation, des éléments sensibles à la sécurité comme ça. Cette absurdité qu'une autre entreprise va rétroconcevoir l'ensemble de votre base de code et en créer un produit concurrent est quelque chose du cauchemar d'un manager paranoïaque, pas de la réalité.


14
Bravo Judah! La seule façon de garder une longueur d'avance est de développer un nouveau code meilleur, sans vous accrocher au code que vous avez déjà écrit. Vous finissez par investir du temps, des efforts et peut-être même de l'argent dans quelque chose qui n'est pas pertinent. L'obfuscation n'en vaut pas la peine.
David Rutten le

180
C'est pourquoi je n'aime pas ce système de réputation, vous avez 19 voix et vous n'avez pas répondu. L'utilisateur ne vous demande pas votre avis sur l'obscurcissement, il veut en savoir plus sur les techniques d'obfuscation.
barre oblique inverse

32
J'ai fourni des informations sur mes expériences en utilisant plusieurs obfuscateurs existants. Et mon opinion est issue de cette expérience.
Judah Gabriel Himango

6
+1 pour "Franchement, je suis convaincu que l'obfuscation est un gros hack." Vous n'auriez pas pu le dire mieux que ça.
Andrei Rînea

15
Un besoin très valable de protéger votre code est de vendre des applications spécialisées coûteuses à des entreprises qui les utiliseront en interne avec seulement quelques utilisateurs. La tentation est d'inverser le code pour autoriser le piratage et les modifications en interne à leurs propres fins, éviter les contrats de maintenance ou même pirater des versions d'essai pour obtenir les goodies dont ils ont besoin.
Brady Moritz

44

Je suis «Knee Deep» dans ce domaine maintenant, essayant de trouver une bonne solution. Voici mes impressions jusqu'à présent.

Xenocode - J'ai une ancienne licence pour Xenocode2005 que j'utilisais pour masquer mes assemblages .net 2.0. Cela fonctionnait bien sur XP et était une solution décente. Mon projet actuel est .net 3.5 et je suis sur Vista, le support m'a dit d'essayer mais la version 2005 ne fonctionne même pas sur Vista (plantages) donc moi et maintenant je dois acheter 'PostBuild2008' à un prix époustouflant de 1900 $. C'est peut-être un bon outil mais je ne vais pas le découvrir. Trop cher.

Reactor.Net - C'est un prix beaucoup plus attractif et cela a bien fonctionné sur mon exécutable autonome. Le module de licence était également agréable et m'aurait épargné beaucoup d'efforts. Malheureusement, il manque une fonctionnalité clé et c'est la possibilité d'exclure des éléments de l'obscurcissement. Cela rend impossible d'obtenir le résultat dont j'avais besoin (fusionner plusieurs assemblys ensemble, obscurcir certains, pas obscurcir les autres).

SmartAssembly - J'ai téléchargé Eval pour cela et cela a fonctionné parfaitement. J'ai pu réaliser tout ce que je voulais et l'interface était de première classe. Le prix est encore un peu élevé.

Dotfuscator Pro - Impossible de trouver le prix sur le site Web. Actuellement en discussion pour obtenir un devis. Cela semble inquiétant.

Confuser - un projet open source qui fonctionne assez bien (pour confondre ppl, comme son nom l'indique).

Remarque: ConfuserEx serait "cassé" selon le problème n ° 498 sur leur dépôt GitHub.


8
pouvez-vous poster combien dotfuscator cité?
Anthony Johnston

6
@Anthony J'ai récemment acheté une licence au début de 2011. Le devis était de 2475 $ US pour le minimum 1 machine de construction + 1 licence de développeur. Comprend 12 mois de mises à niveau et de support.
Yoshi

2
Je n'utilisais pas .NET Reactor lorsque ce message a été publié, mais vous pouvez maintenant exclure des parties de votre code de l'obfuscation à l'aide de l'attribut System.Reflection.Obfuscation. Il existe également des paramètres qui vous permettent d'exclure toutes les méthodes ou tous les types sérialisables.
benteight

5
DotFuscator m'a cité 4999 $, qui a été réduit à 4500 $ en raison d'une réduction de 10%. C'était pour 1 licences de développement! Au cours des discussions, il a été réduit à 2 500 $, mais toujours beaucoup trop cher.
Oliver

3
.NET Reactor dispose désormais d'un éditeur de règles d'exclusion permettant d'exclure certaines classes, méthodes ou propriétés de l'obfuscation. En outre, vous pouvez utiliser la case à cocher "Fusionner uniquement" pour exclure une DLL spécifique de l'obscurcissement
avitenberg


18

J'utilise smartassembly. Fondamentalement, vous choisissez une dll et elle la renvoie obscurcie. Cela semble bien fonctionner et je n'ai eu aucun problème jusqu'à présent. Très, très facile à utiliser.


6
Smartassembly est tout à fait inutile. Un cracker met votre application dans DumbAssembly et toute la "protection" est supprimée avec un clic de souris: woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue

2
À partir de maintenant, la navigation sécurisée de Google indique que le site de Woodmann est dangereux. De plus, le site de Woodmann contient un article complet sur lui qui souffrait auparavant d'une infection par un logiciel malveillant, donc je ne veux pas vraiment naviguer sur son site lorsque Google ne lui fait pas confiance.
Brian

10

J'ai essayé presque tous les obfuscateurs du marché et SmartAssembly est le meilleur à mon avis.


6
Smartassembly est tout à fait inutile. Un cracker met votre application dans DumbAssembly et toute la "protection" est supprimée d'un clic de souris: woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue

3
À partir de maintenant, la navigation sécurisée de Google indique que le site de Woodmann est dangereux. De plus, le site de Woodmann contient un article complet sur lui qui souffrait auparavant d'une infection par un logiciel malveillant, donc je ne veux pas vraiment naviguer sur son site lorsque Google ne lui fait pas confiance.
Brian

9

J'utilise également SmartAssembly. J'ai trouvé que Ezrinz .Net Reactor était bien meilleur pour moi sur les applications .net. Il obscurcit, supporte Mono, fusionne les assemblages et il dispose également d'un très bon module de licence pour créer une version d'essai ou lier la licence à une machine particulière (très facile à implémenter). Le prix est également très compétitif et lorsque j'ai besoin de support, ils sont rapides. Eziriz

Pour être clair, je ne suis qu'un client qui aime le produit et qui n'a aucun lien avec l'entreprise.


J'ai un certain nombre d'amis qui ne jurent que par .Net Reactor - mais pas sur le site Web des produits, il existe également un groupe Google utile pour le produit: groups.google.com/group/net-reactor-users?hl=fr
Bittercoder

2
+1 pour Eziriz. J'ai eu d'excellents résultats avec. C'est le meilleur qui soit en ce moment, OMI.
Druid

4
.NET Reactor suce. J'ai changé d'ordinateur, envoyé deux fois un e-mail concernant le fichier de licence et je n'ai obtenu aucune réponse. Vous voyez que la licence .NET Reactor est verrouillée par le matériel.
OrElse

2
C'est normal. Comment pensez-vous qu'ils vous croient? Comment savent-ils que vous avez vraiment changé votre ordinateur et que vous n'essayez pas d'exécuter une licence de votre ami sur votre ordinateur? Car c'est un verrou matériel! S'il pouvait être utilisé sur plusieurs ordinateurs, un verrou matériel serait inutile.
Elmue

(PS. Nous avons choisi Reactor en grande partie sur la base de cette réponse SO.)
Chris

7

La réponse courte est que vous ne pouvez pas.

Il existe divers outils qui rendront la lecture de votre code plus difficile pour quelqu'un - dont certains ont été signalés par d'autres réponses.

Cependant, tout cela rend la lecture plus difficile - ils augmentent l'effort requis, c'est tout. Souvent, cela suffit à dissuader les lecteurs occasionnels, mais quelqu'un qui est déterminé à fouiller dans votre code sera toujours en mesure de le faire.


51
if (efforts.Required> codeFromScratch.Costs) DoNoReverseEngineer ();
Nicolas Dorier

41
@NicolasDorier,Operator '>' cannot be applied to operands of type 'System.TimeSpan' and 'decimal'
Saeb Amini

21
@Saeb bien sûr qu'ils le peuvent, convertir TimeSpan en argent (décimal) est l'objectif de la plupart des entreprises.
hultqvist

6

Nous avons une application à plusieurs niveaux avec une interface asp.net et winform qui prend également en charge la communication à distance. Je n'ai eu aucun problème avec l'utilisation d'un obfuscateur à l'exception du type de cryptage qui génère un chargeur qui peut être problématique de toutes sortes de manières inattendues et ne vaut tout simplement pas la peine à mon avis. En fait, mon conseil serait plutôt du type "Évitez de crypter les obfuscateurs de type chargeur comme la peste". :)

D'après mon expérience, tout obfuscateur fonctionnera bien avec n'importe quel aspect de .net, y compris asp.net et la communication à distance, il vous suffit de devenir intime avec les paramètres et d'apprendre jusqu'où vous pouvez le pousser dans quelles zones de votre code. Et prenez le temps d'essayer la rétro-ingénierie sur ce que vous obtenez et voyez comment cela fonctionne avec les différents paramètres.

Nous en avons utilisé plusieurs au fil des ans dans nos applications commerciales et nous nous sommes installés sur l'obscurcisseur d'épices de 9rays.net parce que le prix est correct, il fait le travail et ils ont un bon support bien que nous n'ayons plus vraiment besoin du support depuis des années, mais pour être honnête Je ne pense pas que l'obfuscateur que vous utilisez ait vraiment d'importance, les problèmes et la courbe d'apprentissage sont les mêmes si vous voulez qu'il fonctionne correctement avec Remoting et asp.net.

Comme d'autres l'ont mentionné, tout ce que vous faites vraiment est l'équivalent d'un cadenas, empêchant les personnes honnêtes de sortir et / ou rendant plus difficile la simple recompilation d'une application.

La licence est généralement le domaine clé pour la plupart des gens et vous devriez certainement utiliser une sorte de système de certificat signé numériquement pour la licence de toute façon. Votre plus grande perte proviendra du partage occasionnel de licences si vous n'avez pas de système intelligent en place, les personnes qui enfreignent le système de licences n'achèteront jamais en premier lieu.

Il est vraiment facile d'aller trop loin et d'avoir un impact négatif sur vos clients et votre entreprise, faites ce qui est simple et raisonnable et ne vous en faites pas.


5

Au cours des deux derniers jours, j'ai expérimenté Dotfuscator Community Edition advanced (un téléchargement gratuit après l'enregistrement du CE de base fourni avec Visual Studio).

Je pense que la raison pour laquelle plus de gens n'utilisent pas l'obscurcissement comme option par défaut est que c'est un problème sérieux par rapport au risque. Sur des projets de test plus petits, je pouvais faire fonctionner le code obscurci avec beaucoup d'efforts. Déployer un projet simple via ClickOnce était gênant, mais réalisable après avoir signé manuellement les manifestes avec mage. Le seul problème était qu'en cas d'erreur, la trace de la pile est revenue obscurcie et le CE n'a pas de désobfuscateur ou de clarificateur emballé.

J'ai essayé de brouiller un vrai projet qui est basé sur VSTO dans Excel, avec l'intégration de Virtual Earth, beaucoup d'appels de services Web et un conteneur IOC et beaucoup de réflexion. C'était impossible.

Si l'obscurcissement est vraiment une exigence critique, vous devez concevoir votre application en gardant cela à l'esprit dès le début, en testant les versions obscurcies au fur et à mesure de votre progression. Sinon, si c'est un projet assez complexe, vous allez vous retrouver avec une grosse douleur.


5

Crypto Obfuscator répond à toutes vos préoccupations et scénarios. Il :

  1. Exclut automatiquement les types / membres de l'obscurcissement en fonction des règles. Les types / champs sérialisés sont l'un d'entre eux.
  2. Il peut être intégré au processus de construction à l'aide de MSBUild.
  3. Prend en charge les projets ASP.Net.

3
fyi @logicnp a écrit Crypto.
Bloke CAD

Crypto semble ne plus être pris en charge.
Carl

J'en ai essayé plusieurs, "Crypto" m'a semblé très agressif et utile, mais lors de l'exécution de la DLL obscurcie dans De4dot j'ai eu le code original ... Désolé d'avoir gâché la fête ....
Dave Gahan

4

J'ai récemment essayé de canaliser la sortie d'un obfuscateur gratuit dans un autre obfuscateur gratuit - à savoir Dotfuscator CE et le nouvel obfuscateur Babel sur CodePlex. Plus de détails sur mon blog .

En ce qui concerne la sérialisation, j'ai déplacé ce code dans une DLL différente et l'ai inclus dans le projet. J'ai pensé qu'il n'y avait pas de secrets là-dedans qui ne soient de toute façon pas dans le XML, donc cela n'avait pas besoin d'être obscurci. S'il y a du code sérieux dans ces classes, l'utilisation de classes partielles dans l'assembly principal devrait le couvrir.


-1, parce que "yo dawg, je t'ai entendu aimer les obfuscators alors j'ai lancé un obfuscator sur la sortie d'un obfuscator ... veux en savoir plus? Donnez-moi des visites". Mais je trouve le deuxième paragraphe une très bonne suggestion.
ANeves

3

Vous devez utiliser ce qui est le moins cher et le plus connu pour votre plate-forme et l'appeler un jour. L'obfuscation des langages de haut niveau est un problème difficile, car les flux d'opcode VM ne souffrent pas des deux plus gros problèmes que les flux d'opcode natifs font: l'identification de fonction / méthode et l'alias de registre.

Ce que vous devez savoir sur l'inversion de bytecode, c'est qu'il est déjà une pratique standard pour les testeurs de sécurité d'examiner le code X86 pur et d'y trouver des vulnérabilités. Dans X86 brut, vous ne pouvez même pas nécessairement trouver des fonctions valides, et encore moins suivre une variable locale tout au long d'un appel de fonction. Dans presque aucun cas, les inverseurs de code natifs n'ont accès aux noms de fonctions et de variables - à moins qu'ils n'examinent le code Microsoft, pour lequel MSFT fournit utilement ces informations au public.

"Dotfuscation" fonctionne principalement en brouillant les noms de fonctions et de variables. Il est probablement préférable de le faire que de publier du code avec des informations de niveau de débogage, où le réflecteur abandonne littéralement votre code source. Mais tout ce que vous faites au-delà de cela risque d'entraîner des rendements décroissants.



3

Vous pouvez utiliser "Dotfuscator Community Edition" - il est fourni par défaut dans Visual Studio 2008 Professional. Vous pouvez en savoir plus sur:

http://msdn.microsoft.com/en-us/library/ms227240%28VS.80%29.aspx
http://www.preemptive.com/dotfuscator.html

La version "professionnelle" du produit coûte de l'argent mais est meilleure.

Avez-vous vraiment besoin de votre code obscurci? Habituellement, il y a très peu de problèmes avec votre application en cours de décompilation, sauf si elle est utilisée à des fins de sécurité. Si vous craignez que les gens «volent» votre code, ne le soyez pas; la grande majorité des personnes qui consultent votre code le seront à des fins d'apprentissage. Quoi qu'il en soit, il n'y a pas de stratégie d'obfuscation totalement efficace pour .NET - quelqu'un avec suffisamment de compétences sera toujours en mesure de décompiler / modifier votre application.


+1 pour cela. J'ai essayé à peu près tous les obfuscateurs .NET gratuits, et Dotfuscator était le seul à avoir masqué une proportion substantielle de MSIL dans mes applications ASP.NET.
saille

@Saille, avez-vous utilisé le Dotfuscator gratuit - Community Edition pour cela? Je viens de discuter des ventes et ils disent que l'édition pro coûte 2000 EUR. :(
Houman

Dotfuscator est sans valeur.
user626528

3

Évitez Reactor. C'est complètement inutile (et oui j'ai payé une licence). Xenocode était le meilleur que j'ai rencontré et j'ai acheté une licence pour aussi. Le support était très bon mais je n'en avais pas vraiment besoin car cela fonctionnait. J'ai testé tous les obfuscateurs que j'ai pu trouver et ma conclusion est que xenocode était de loin le plus robuste et faisait le meilleur travail (également possibilité de post-traiter votre exe .NET dans un exe natif que je n'ai vu nulle part ailleurs.).

Il existe deux différences principales entre le réacteur et le xénocode. Le premier est que Xenocode fonctionne réellement. La seconde est que la vitesse d'exécution de vos assemblys n'est pas différente. Avec le réacteur, il était environ 6 millions de fois plus lent. J'ai également eu l'impression que le réacteur était une opération par un seul homme.


.NET Reactor propose de nombreuses options. Certains d'entre eux impliquent une protection d'exécution et ralentiront un peu l'application, mais c'est le prix d'une sécurité supplémentaire que vous obtenez. Cependant, je doute sérieusement qu'il y ait un ralentissement si vous utilisez simplement l'obfuscation .NET Reactor, sans aucune autre option
avitenberg


2

J'ai obscurci le code dans la même application depuis .Net 1, et cela a été un casse-tête majeur du point de vue de la maintenance. Comme vous l'avez mentionné, le problème de sérialisation peut être évité, mais il est vraiment facile de faire une erreur et d'obscurcir quelque chose que vous ne vouliez pas obscurcir. Il est facile de casser la compilation ou de modifier le modèle d'obscurcissement et de ne pas pouvoir ouvrir d'anciens fichiers. De plus, il peut être difficile de savoir ce qui n'a pas fonctionné et où.

Notre choix était Xenocode, et si je devais refaire ce choix aujourd'hui, je préférerais ne pas obscurcir le code ou utiliser Dotfuscator.



1

Nous utilisons SmartAssembly sur notre client Windows. Fonctionne très bien.

Ajoute également des problèmes supplémentaires. L'impression de vos noms de classe dans les fichiers journaux / exceptions doit être supprimée. Et bien sûr, ne peut pas créer une classe à partir de son nom. C'est donc une bonne idée de jeter un œil à votre client et de voir quels problèmes vous pouvez obtenir en obscurcissant.




1

J'ai dû utiliser une protection d'obfuscation / ressource dans mon dernier rpoject et j'ai trouvé Crypto Obfuscator comme un outil simple et agréable à utiliser. Le problème de sérialisation n'est qu'une question de paramètres dans cet outil.


@logicnp, ceci est votre deuxième message dans ce fil de discussion approuvant ce produit. Veuillez indiquer si vous avez une relation avec le développeur de ce produit.
H2ONaCl

Désolé, mais de4dot peut dissiper cela. Je recommanderais d'utiliser ConfuserEx .
newbieguy

1

Il existe une bonne version open source appelée Obfuscar. Semble bien fonctionner. Les types, propriétés, champs, méthodes peuvent être exclus. L'original est ici: https://code.google.com/p/obfuscar/ , mais comme il ne semble plus être mis à jour


J'y ai jeté un coup d'œil aujourd'hui - notez la date de mon commentaire! - et c'est un peu compliqué de commencer. J'ai également perdu la meilleure partie de l'heure à essayer de le faire signer à nouveau l'assemblage en utilisant un fichier .pfx. Il a jeté une erreur inintelligible et non documentée; semble que vous ne pouvez signer qu'en utilisant un .snk.
SteveCinq

0

Vous voudrez peut-être également examiner les nouvelles technologies de protection de code telles que Metaforic et ViLabs et les nouvelles technologies de protection contre la copie de logiciels telles que ByteShield . Divulgation: je travaille pour ByteShield.



0

SmartAssembly est génial, j'ai été utilisé dans la plupart de mes projets



-1

Obscurcir n'est pas une vraie protection.

Si vous avez un fichier .NET Exe, il existe une solution bien meilleure .

J'utilise Themida et je peux dire que cela fonctionne très bien.

Le seul inconvénient de Themida est qu'il ne peut pas protéger les DLL .NET. (Il protège également le code C ++ dans Exe et DLL)

Themida est de loin moins cher que les obfuscators mentionnés ici et est le meilleur en matière de protection anti- piratage sur le marché. Il crée une machine virtuelle sur laquelle des parties critiques de votre code sont exécutées et exécute plusieurs threads qui détectent la manipulation ou les points d'arrêt définis par un pirate. Il convertit le .NET Exe en quelque chose que Reflector ne reconnaît même plus comme un assembly .NET.

Veuillez lire la description détaillée sur leur site Web: http://www.oreans.com/themida_features.php


-2

J'ai essayé un produit appelé Rummage et il fait un bon travail en vous donnant un certain contrôle ... Bien qu'il manque beaucoup de choses qu'offre Eziriz mais le prix pour Rummage est trop bon ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.