Question

Quel est le meilleur moyen de sécuriser l'utilisation / le chargement d'une DLL avec un fichier de licence?

Était-ce utile?

La solution

Quelques éléments à prendre en compte:

Cochez la somme de la DLL. En utilisant une fonction de hachage cryptographique , vous pouvez la stocker dans le fichier de licence ou dans la DLL. Cela fournit une méthode de vérification pour déterminer si mon fichier DLL d'origine est non hacké ou s'il s'agit du fichier de licence de cette DLL. Quelques techniques simples d’échange d’octets permettent de sortir rapidement votre fonction de hachage des sentiers battus (et donc de la rendre difficile à reproduire).

Ne stockez pas votre hachage en tant que chaîne, divisez-le en shorts non signés à différents endroits.

Comme l'a dit Larry, une adresse MAC est assez commune. Il existe de nombreux exemples montrant comment l’obtenir sur Le projet de code , mais sachez que c'est facile simuler ces jours-ci.

Ma suggestion serait d'utiliser les clés privées / publiques pour la génération de licences.

En bref, les modes d’attaque seront binaires (modifiez les instructions de votre fichier DLL). Protégez-vous contre cela, ou générez une clé; adaptez donc chaque utilisateur de licence, machine et même l’installation.

Autres conseils

Vous pouvez rechercher une licence dans DllMain () et mourir si elle n’est pas trouvée.

Cela dépend également du fonctionnement de votre algorithme de licence. Je vous conseillerais d'utiliser quelque chose comme un échange de clés Hellman (ou même RSA ) pour générer une sorte de public / clé privée pouvant être transmise à vos utilisateurs, en fonction de certaines informations.

(En fonction de l'application, je connais un cas dans lequel j'ai écrit le code de licence sur contrat pour une entreprise. Ils ont utilisé un adresse MAC , ainsi que d’autres données, l’a hachée et cryptée, en leur donnant la "valeur de la clé", si le numéro d’enregistrement était correct). Cela garantit que le fichier de clé ne peut pas être déplacé (ou donné) sur une autre machine, ce qui «volera» le logiciel.

Si vous voulez aller plus loin et éviter les pirates, c’est un tout autre sujet ....

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