Question

Je dispose d'un fichier de licence pour mon application. La seule façon qu'il peut être rompu en ce moment et l'utilisateur peut avoir un accès illimité est en supprimant le fichier de licence tous les 30 jours et de réinstaller le programme.

Comment puis-je protéger ce fichier? (Ou informations)

Ma première pensée est de cacher le fichier quelques dossiers en profondeur quelque part sous windows% ALLUSERSPROFILE%. Et utiliser des noms obscurs pour les dossiers à ne pas annoncer l'emplacement.

Une autre pensée était d'écrire dans le registre, mais nous ne pouvons toujours écrire à la HKEY_Local_Machine comme je voulais en raison de son besoin des privilèges d'administrateur.

Était-ce utile?

La solution

Quasiment toute méthode de cacher ou obscurcir votre fichier de licence est piratable. Vous avez vraiment besoin de décider entre certains scénarios:

  1. Je fais confiance à mes clients, mais ils pourraient par inadvertance briser mes conditions de licence
  2. Mon produit est hautement souhaitable et sera donc la cible des crackers
  3. Mon produit est intéressant de biscuits salés, mais mes clients sont slimebags et copiera la morve hors de lui.

Dans le cas 1, un simple fichier de licence pour aider vos clients à la conformité est très bien. Probablement cacher ou obscurcir il ne faut pas. Je suppose que ce n'est pas votre cas puisque vous avez publié cette question.

Dans les cas 2 et 3, il y a peu, vous pouvez le faire ne peut pas être facilement défaits. Les outils disponibles pour crackers sont assez puissants et largement disponibles, ainsi que des techniques pour les utiliser. Notre société ( www.wibu.us ) a un cryptographe à temps plein qui vient de montres comment les gens le logiciel de crack afin que nous puissions construire une protection renforcée contre elle.

Probablement l'approche la plus « normale » pour une solution DIY est de chiffrer le fichier de licence à l'aide d'un algorithme « standard » comme AES 128 bits ou Triple DES. Faites ensuite la clé d'un hachage de plusieurs facteurs, comme l'adresse MAC, le numéro de série MB, la date d'installation, et peut-être des données saisies par l'utilisateur ( « nom » « Téléphone », etc.). Cependant, Crypto peut devenir compliqué si vous voulez vous assurer que vous savez ce que vous faites avec cette approche.

Autres conseils

Créer un fichier de licence lors de l'installation. Et considérer l'absence d'un fichier de licence en tant que fichier de licence non valide. Désinstallation, la suppression du fichier puis de réinstaller est beaucoup plus ennuyeux que de supprimer un fichier.

I haine si des fichiers avec un nom aléatoire obscur apparaissent quelque part sur mon système, car je me demande si je suis infecté par un virus, ou si elle est juste un logiciel mal comportée.

Et ne pas essayer trop dur. Il est inutile de le rendre plus dur que le téléchargement d'une fissure ou un outil de remise licence sur le site suivant warez. Et un pirate va trouver votre fichier de licence très rapidement avec des outils comme FileMon.

Une idée qui pourrait en fait le travail (sauf contre les fissures qui patcher votre binaire):
Fixer la date de péremption indiquée sur le téléchargement et incorporer le fichier de licence dans la configuration. De cette façon, ils ont réellement besoin de télécharger une nouvelle version chaque fois que leur licence expire. Mais bien sûr, vos utilisateurs pourraient trouver cela inacceptable ou pourraient ne pas correspondre à votre modèle de distribution ...

Force l'application d'aller à un serveur distant sur le port 80 pour vérifier un hachage qui a été fixé à la première installation, peut-être contre l'adresse MAC (pas une garantie absolue, mais assez bon). S'ils essaient d'installer à nouveau, il est au moins lié à l'adresse MAC et vous pouvez arrêter l'installation.

EDIT:

Si votre base de clients est faible et vous avez les ressources nécessaires pour les soutenir, vous pouvez effectuer le même comportement sans accès à Internet, sauf que le client doit venir à vous pour obtenir un fichier de licence. Ils génèrent une clé via leur système, encore une fois lié à l'adresse MAC, alors vous envoyer la clé que vous générez le fichier de licence. Cela dépend bien sûr du nombre de téléchargements sortants par jour.

Une solution consiste à intégrer une date d'expiration le fichier de licence. Si votre programme protégé ne trouve pas un fichier de licence, il est invalide.

Donc, même si l'utilisateur le supprime, il ne sera pas beaucoup d'aide, il est encore expiré.

Le seul problème dans ce cas est: vous devez fixer une date d'expiration lorsque vous distribuez les fichiers de licence. Vous pouvez résoudre ce avec d'autres trucs (Redistribuer régulièrement des nouvelles licences, etc.), mais qui peut ne pas convenir à tous les besoins.

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