Question

Je travaille sur la création d'une version d'essai entièrement fonctionnelle d'un logiciel.Maintenant, parce que je ne veux pas d'essai à durée limitée (comme un essai de 30 jours) ou à fonctionnalités limitées, ce serait bien d'opter pour l'essai du « nombre de fois qu'un utilisateur peut exécuter le logiciel ».

C'est une application .NET basée sur C# et j'essaie de trouver un moyen de l'implémenter.J'ai essayé des clés de registre, un suivi basé sur des fichiers, etc., mais ils ne semblent pas très fiables.

J'apprécierais vraiment de l'aide sur ce sujet.

Merci, Rohan

Était-ce utile?

La solution

Les deux façons normales de suivre une période d'essai sont d'utiliser une clé de registre et un service Web :

  • Clé d'enregistrement: Implémentez une méthode permettant de conserver le nombre de démarrages de programmes dans une clé du registre Windows, probablement avec une sorte d'obscurcissement.Un schéma de chiffrement « salé », dans lequel vous chiffrez un schéma contenant votre valeur plus une valeur dépendante de la machine comme l'adresse MAC de la carte réseau, fonctionnerait probablement mieux ;assurez-vous que votre code est difficile à décompiler, en utilisant quelque chose comme Dotfuscator.Il serait préférable de mettre la clé en place à l'aide du programme d'installation, afin que le programme puisse simplement traiter l'absence de clé comme une tentative de falsification.

    Puis, au démarrage, récupérez la clé, déchiffrez-la et inspectez-la.Si c'est ce que vous attendez, ajoutez 1 à la valeur, réécrivez-la dans le registre, et si la nouvelle valeur est supérieure au nombre de démarrages autorisés, verrouillez l'utilisateur.Si la clé de registre a une valeur à laquelle vous ne vous attendez pas (c'est-à-dire qu'elle a été falsifiée), y compris si elle n'est pas présente du tout, verrouillez simplement l'utilisateur.

    L’avantage de cette approche est qu’elle offre une sécurité très renforcée sans avoir besoin d’Internet.L'inconvénient est que les détails « dépendants de la machine » peuvent changer pour des raisons légitimes, et lorsque cela se produit, votre utilisateur est verrouillé avant d'avoir utilisé tous ses démarrages, ce qui peut frustrer les utilisateurs.De plus, votre implémentation pour le salage et le cryptage est présente sur l'ordinateur de l'utilisateur ;un pirate informatique sophistiqué aura des moyens d'examiner votre programme même si vous masquez le code, et pourra découvrir votre implémentation et l'imiter pour "réinitialiser" le compteur.Il suffit d’un seul homme pour le faire, et il y aura une simple application Warez pour permettre à n’importe qui d’autre de le faire.

  • Service Web:Implémentez un service WCF sur un serveur que vous contrôlez.Verrouillez-le étroitement, de sorte que le seul moyen d'entrer ou de sortir de l'extérieur de votre réseau local est via le port WCF exactement comme WCF l'attend.Implémentez maintenant un client dans votre programme et son programme d'installation.Lors de l'installation, le programme d'installation appellera une méthode de service indiquant que le logiciel est en cours d'installation sur une machine avec une adresse MAC ou un ID matériel particulier.Si cette machine unique n'est pas répertoriée dans votre base de données, ajoutez-la ;sinon ne fais rien.Ensuite, au démarrage du programme, appelez le service Web à partir de votre programme, transmettez les mêmes informations. Le service Web mettra à jour le nombre de démarrages et renverra une valeur indiquant au client s'il est autorisé à démarrer.

    L'avantage d'un service Web est qu'il sera très difficile de le diffuser de manière à pouvoir le commercialiser en masse via Warez ;le principal moyen d'attaquer un tel système est de pirater le serveur de licences, ou bien de mettre en place un "homme du milieu" qui peut rediriger la requête de votre programme pour le service Web vers un ordinateur qu'il contrôle.L'inconvénient est que les modifications apportées à l'ID matériel d'un ordinateur peuvent toujours provoquer des verrouillages précoces, ou pire, permettre une solution de contournement en permettant à l'attaquant d'usurper simplement une nouvelle adresse MAC ou un nouvel ID matériel que vous n'avez jamais vu auparavant, et de réinstaller votre logiciel qui donne le à l'utilisateur une nouvelle série de démarrages sur la "nouvelle" machine.Il existe également des moyens d'éviter cela, mais chaque niveau d'obscurcissement et de vérification anti-piratage que vous ajoutez constitue un niveau de complexité supplémentaire.

Quoi que vous fassiez, n’oubliez pas la règle des 80/20 ;80 % de vos utilisateurs resteront honnêtes grâce aux mesures les plus élémentaires pour sécuriser le processus d’essai.20 % de vos utilisateurs trouveront un moyen de contourner ce problème.Sur ces 20 %, 80 % seront bloqués par toute mesure supplémentaire que vous mettrez en place.Ce processus est récursif ;le fait est que quelqu'un, quelque part, contournera toutes les mesures que vous mettez en place, mais si les calculs sont valables, 96 % de vos utilisateurs céderont et vous paieront pour un accès complet lorsqu'ils seront confrontés à une clé de registre chiffrée par décalage et à un programme obscurci. code.Vous pouvez obtenir cela pour 99,2 % des utilisateurs en ajoutant autre chose, comme saler la clé obscurcie avec quelque chose de spécifique à la machine.

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