Je pensais à obscurcir une application commerciale .Net. Mais vaut-il vraiment la peine de choisir, d’acheter et d’utiliser un tel outil? Les fichiers binaires obfusqués sont-ils vraiment à l'abri de l'ingénierie inverse?
Réponses
Trop de publicités?Vous ne pouvez pas avoir à acheter un outil Visuel Studio.NET est livré avec une version communautaire de Dotfuscator. Autres gratuit de dissimulation des outils sont répertoriés ici, et ils peuvent répondre à vos besoins.
Il est possible que l'obfuscation binaires ne sont pas à l'abri de l'ingénierie inverse, tout comme il est possible que votre cadenas de vélo peut-être sécable/cliquable. Cependant, il arrive souvent qu'un petit inconvénient est suffisant pour dissuader ceux qui pourraient être code/le voleur de bicyclette.
Aussi, si jamais il vient le temps de faire valoir vos droits à un morceau de code dans la cour, ayant vu faire un effort pour les protéger (en ôtant il) peut vous donner des points supplémentaires. :-)
Vous n'avez qu'à considérer les inconvénients, cependant, il peut être plus difficile à utiliser la réflexion avec d'obfuscation de code, et si vous êtes en utilisant quelque chose comme log4net pour générer des parties de lignes de log basé sur le nom de la classe, ces messages peuvent devenir beaucoup plus difficile à interpréter.
Rappelez-vous que l'obfuscation est seulement un obstacle à la casual examinateur de votre code. Si quelqu'un est sérieux au sujet de trouver ce que vous avez écrit, vous aurez un moment très difficile de les arrêter.
Si vous avez des secrets dans votre code (comme les mots de passe), vous le faites mal.
Si vous inquiet que quelqu'un pourrait produire votre propre logiciel avec vos idées, vous aurez plus de chance sur le marché en proposant de nouvelles versions de vos clients, avec l'appui technique, et en étant un partenaire pour eux. Bonnes affaires gagne.
Au sein de notre entreprise, nous avons évalué différentes de la dissimulation de technologies, mais ils avaient tous des problèmes. Le plus gros problème est que nous comptons beaucoup sur la réflexion, par exemple, de créer dynamiquement des grilles basées sur les noms de propriété.
De sorte que tous les obfuscators renommer les choses, vous pouvez le désactiver, bien sûr, mais alors vous perdez l'avantage de l'obscurcissement.
Aussi, dans notre code, nous avons beaucoup de NUnit tests qui dépendent beaucoup plus des méthodes et des propriétés publiques, ce qui a empêché certains de la obfuscators d'être en mesure de dissimuler ces classes.
En fin de compte nous nous sommes installés sur un produit appelé .NET Réacteur
Il fonctionne très bien, et nous n'avons pas de problèmes avec les autres produits.
"Contrairement à obfuscators .NET Réacteur arrête complètement de toute décompilation par le mélange de toute pure .NET de l'assemblée (écrit en C#, VB.NET, Delphi.NET, J#, MSIL...) avec le code machine natif. Dans le détail, les .NET Réacteur construit un natif de la paroi entre les pirates et les votre .NET code. Le résultat est un standard basé sur Windows, pas MSIL compatible, fichier. L'original .NET code reste intacte, bien protégé par le code natif et invisible pour les yeux indiscrets. L'original .NET code n'est pas copié sur le disque dur à tout moment. Il n'y a pas d'outil qui est capable de décompiler .NET Réacteur protégé assemblées."
Le fait que vous ne pouvez désosser il ne fait pas de la dissimulation de l'inutile. Elle pose la barre de manière significative.
Un unobfuscated .NET de l'assemblée vous montrera tous les source de, mis en évidence et tout simplement en téléchargeant le .NET Réflecteur. Ajouter obscurcissement pour cela et vous aurez de réduire très significatively la quantité de personnes qui sera en mesure de modifier le code.
Il dépend de vous de vous de vous protéger contre. Si vous l'expédier unobfuscated, vous pourriez aussi bien open source de l'application et l'avantage de la commercialisation. L'expédition d'obfuscation ne permettent aux personnes de relativement facilement générer des binaires modifiés par des correctifs au lieu d'être en mesure de voler votre code et de créer un concurrent direct. L'obtention de la source réelle de obfuscation de code est très dur, en fonction de l'obfuscateur, bien sûr.
Je pense que cela dépend du type de votre produit. S'il est destiné à être utilisé par les développeurs, l'obfuscation nuira à vos clients. Nous utilisons les produits ArcGIS au travail et toutes les DLL sont obscurcies. Cela rend notre travail beaucoup plus difficile, car nous ne pouvons pas utiliser Reflector pour décrypter des comportements étranges. Et nous achetons des clients qui ont payé des milliers de dollars pour ce produit.
Alors s'il vous plait, ne brouillez pas à moins que vous n'ayez vraiment à le faire.