Question

Je suis vraiment triste car il y a quelques jours, nous avons lancé notre logiciel développé dans .NET 4.0 (application de bureau). Après 3 jours, sa fissure était disponible sur Internet. Nous avons essayé de protéger le logiciel de cela, mais d'une manière ou d'une autre, les gens ont disparu.

Voici le scénario: Lorsque l'application lance la première fois qu'elle communique avec le serveur Web et vérifie les informations d'identification transmises par l'utilisateur. Si les informations d'identification sont correctes, le logiciel enregistre les valeurs dans le registre, renvoie la machineIide sur le serveur et le stocke dans la base de données.

Maintenant, le pirate informatique a remplacé la communication du serveur avec un "retour vrai;" déclaration (j'ai vérifié qu'avec Telrik JustDecompile). et il a téléchargé le logiciel fissuré sur Internet.

Maintenant, vous trouverez mes questions:
1- Comment s'assurer que l'application .NET ne sera pas fissurée? de
2- Le pirate informatique connaît maintenant mon code puisqu'il a effectué la modification. Quelles mesures dois-je prendre?
3- J'ai lu sur Internet sur - Obfuscators. Mais le pirate informatique connaît mon code que dois-je faire?
4- Toute autre astuce Pro que je puisse utiliser pour éviter de faire craquer le logiciel?
5- Je ne suis pas sûr, mais ces logiciels de réflecteur peuvent également décompiler l'app.config avec des données sensibles?

Était-ce utile?

La solution

1- Comment vous assurer que l'application .NET ne sera pas fissurée?

Si un ordinateur peut exécuter votre code +, le pirate informatique peut exécuter son propre code à un niveau de privilège plus élevé que vous, il n'ya rien à 100% d'empêcher votre application d'être fissurée. Même s'ils ont juste accès à l'exécutable mais pas à la plate-forme cible, ils peuvent toujours passer à travers et imiter ce que la plate-forme cible ferait et déterminerait comment la protection est en cours.

2- Le pirate informatique connaît maintenant mon code puisqu'il a effectué la modification. Quelles mesures dois-je prendre?

Réécrivez totalement la partie d'authentification afin qu'il doit commencer à partir de zéro, mais ils le récupéreront, c'est juste une question de combien de temps.

3- J'ai lu sur Internet sur - Obfuscators. Mais le pirate informatique connaît mon code que dois-je faire?

Le Jinni est sorti de la bouteille maintenant qu'ils ont le code non obscurposé. Il n'y a pas grand chose que vous puissiez faire si vous réécrivez radicalement le logiciel afin qu'ils doivent commencer à partir de zéro. Un obfuscêteur n'empêchera pas un attaquant déterminé, ce n'est que la seule chose qui peut empêcher qu'il maintient le binaire hors de leurs mains.

4- Tous les autres conseils Pro que je peux utiliser pour éviter de faire craquer le logiciel?

La seule protection de la copie que j'ai vue à retarder à distance pendant toute période est ce que Ubisoft a fait avec la croyance d'assassin: fraternité. Ils ont crypté les niveaux de jeu avec le disque de jeu et il a dû télécharger la clé de déchiffrement à partir d'Internet tel qu'il était nécessaire (il s'agit de la prise en charge du binaire hors de leurs mains. Mais cela n'a pas fonctionné pour toujours, les pirates ont finalement obtenu ces niveaux déchiffrés et cela a été entièrement fissuré. Cette approche est exactement ce que j'ai vu prendre la plus longue période pour se déplacer sans implication légale (voir point 2 en bas)

5- Je ne suis pas sûr, mais ces logiciels de réflecteur peuvent également décompiler l'app.config avec des données sensibles?

Tout le logiciel de réflecteur doit être recherché est de rechercher la section chargant app.config et lisez quelles sont les valeurs par défaut. Il y a no endroit sécurisé pour stocker des informations sur un ordinateur que vous n'avez pas de contrôle total. Si c'est sur l'ordinateur, il peut être lu. Si cela peut être lu, il peut être inverse inverse.


La seule solution réelle que je puisse voir pour empêcher la piratie est l'une des deux options.

  1. La personne ne reçoit jamais votre application, elle est diffusée d'un serveur sous votre contrôle et ils ne peuvent jamais voir le binaire. La seule chose que vous leur envoyez est l'information dont ils ont besoin pour conduire l'interface utilisateur. C'est l'approche que tous les travaux de MMO sur. Les gens peuvent ingénieur ingénieur ce que vous envoyez à l'interface utilisateur et imiter la logique qui se passe sur vos serveurs, mais ils ne pourront jamais passer à côté de ce qu'il fait et si votre logiciel est suffisamment complexe, il peut ne pas être férésable pour l'attaquant recréer le code côté serveur. L'inconvénient de cette approche est que vous aurez besoin d'organiser des serveurs de vos utilisateurs à vous connecter, ce sera un coût réaliste que vous aurez besoin d'un moyen de ré-coupé. Souvent, cette méthode s'appelle un "client riche" ou "client léger" en fonction de la quantité de traitement du client et de la quantité de traitement du serveur. Voir Chapitre 22 de " guide d'architecture d'application Microsoft, 2e édition ". Spécifiquement, je décrive ce qui est affiché dans Figure 4 et 5

  2. L'option Seccond est que vous vendez également votre logiciel que vous devez également signer un contrat juridique de ne pas distribuer le logiciel (pas un CLUF, un contrat réel qui doit être signé physiquement par le client). Dans ce contrat, de grandes amendes sont appliquées à la personne qui fuit le logiciel, puis énorme votre programme avec des empreintes digitales propices à la personne qui achète le logiciel de sorte que lorsque le programme est divulgué, vous pouvez voir qui l'a fait. (Ceci est la méthode que les rayons hexagonaux du vendeur utilisent pour leur désassembleur IDA . Une recherche rapide de Google n'a pas pu augmenter les versions fissurées plus récentes que 6,1, elles sont sur 6.3 ). Cette méthode n'arrête pas le piratage, mais elle peut décourager la copie à fuir en premier lieu. Cela vous permet également de récupérer certains coûts perdus associés au programme étant divulgué en premier lieu. Un problème est que vous devrez mettre beaucoup d'empreintes digitales et il faudra être subtil, si un attaquant peut avoir deux copies du programme et peut comparer les fichiers entre

Les deux, il pourra dire quelles sont les informations d'identification et simplement mettre tout ce qu'ils veulent pour ne pas pouvoir dire qui ils l'ont eue. La seule façon de le faire est de faire beaucoup de harengs rouges dans celui qui ne peut pas simplement être dépouillé ou randomisé, rend également le code d'identification non critique pour exécuter le logiciel, s'ils ne doivent pas nécessairement travailler pour le craquer ils sont plus susceptibles de laisser entrer.


Mise à jour : Après avoir révisé cette réponse pour le lier pour une autre question, j'ai pensé à un moyen facile d'implémenter la solution n ° 2.

Tout ce que vous avez à faire est de gérer votre code à travers un obfuscateur et de le laisser renommer vos cours pour chaque personne que vous vendez votre logiciel (je les ferais toujours signer un contrat de licence, non seulement cliquez sur un CLUF afin que vous puissiez appliquer le partie suivante). Vous faites ensuite une base de données du mappage d'obfuscation, lorsque vous voyez une copie fuite sur Internet, il vous suffit de trouver une classe n'importe où dans le projet, recherchez-la dans votre base de données et vous saurez qui l'a divulguée et sachez qui vous avez besoin. aller après les dommages-intérêts légaux.

Autres conseils

1: vous ne pouvez pas.Vous pouvez obscurcir, mais le seul moyen de empêcher c'est: ne donnez à personne l'EXE.Regardez combien de sociétés de jeux dépensent à ce sujet;ils ne l'ont pas résolu non plus.

2: Obfuscation aiderait un peu , bien qu'il s'agisse d'une course d'armes entre les Obfuscators et les Obfuscators

3: trop tard pour remonter et annuler cela, mais l'obfuscation les ralentira un peu à l'avenir

5: app.config est généralement très lisible;Vous ne pouvez pas beaucoup faire ici;Le cryptage ne les ralentira que des ralentir un peu si les clés sont dans votre application et donc obtenues

Comme d'autres l'ont dit, il n'ya vraiment rien de ce que vous pouvez faire contre un cracker déterminé s'ils ont accès à votre code.L'obfuscation fournira une certaine protection contre un craquelin paresseux. Dotfuscator est intégré à VS, vous pouvez essayer d'essayer.Gardez à l'esprit qu'il existe un coût réel pour l'obfuscation.Il sera très difficile de déboguer des problèmes de traces de pile que vos clients (payants) vous envoient.

La meilleure réponse est celle que vous devrez accepter.Vous ne pouvez pas.Concentrez-vous simplement de donner à vos utilisateurs une excellente expérience utilisateur et de rendre la licence très facile.La possibilité que votre demande puisse être fissurée ne signifie pas que choisir de construire une application de bureau était une mauvaise idée.Les pirates seront des pirates et des clients honnêtes seront des clients honnêtes.

Apparemment, il y a suffisamment de valeur commerciale ou intellectuelle craquant votre application que quelqu'un avec des compétences raisonnables a essayé presque tout de suite.

Le seul votre façon de gagner cette guerre est d'utiliser des packages de protection de logiciels commerciaux.

Si vous essayez de mettre en œuvre la protection de la copie vous-même, vous serez une cible facile pour pirater à nouveau.

Si vous écrivez une application professionnelle, vous n'écririez pas également le moteur de base de données qui stocke les données.Vous ne devriez pas non plus écrire le code de prévention du crack pour votre application.Ce n'est pas ce qui résout le problème de votre client, et il faut une compétence formidable pour le faire correctement.

Ce que vous pouvez faire, en plus du code Obfuscation, c'est l'ajout d'un mécanisme de décryptage de code basé sur la base matérielle, à l'esprit le scénario suivant, l'envoi de leur HWID à votre serveur, vous identifiez le numéro de copie / propriétaire / installation./ etc avec ce hwid, et vous répondez avec une clé de décryption basée sur ce HWID pour ce binaire spécifique (avec les empreintes digitales mentionnées précédemment), le piratage serait donc plus difficile, car pour une fonctionnalité entièrement nécessaire, ils ont besoin d'un accès valide à votre serveur, sinon ellesImpossible d'utiliser le logiciel.

acclamations,

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top