Quel est le meilleur moyen de sécuriser l'utilisation/le chargement d'une DLL avec un fichier de licence?Sécuriser un fichier DLL avec un fichier de licence
Répondre
Un couple de choses que vous pouvez envisager:
Vérifiez somme la DLL. En utilisant un cryptographic hash function, vous pouvez le 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 désactivé ou s'il s'agit du fichier de licence pour cette DLL. Quelques techniques simples d'échange d'octets peuvent rapidement prendre votre fonction de hachage hors des sentiers battus (et donc pas facile à reproduire). Ne stockez pas de hash en guise de ficelle, divisez-le en shorts non signés à différents endroits. Comme l'a dit Larry, une adresse MAC est assez commune. Il y a beaucoup d'exemples de comment obtenir cela sur The Code Project, mais sachez qu'il est facile de truquer ces jours-ci.
Ma suggestion, devrait être utiliser private/public clés pour la génération de licence. En résumé, les modes d'attaque seront binaires (modifiez les instructions de votre fichier DLL) alors protégez-vous contre cela, ou la génération de clé afin que chaque utilisateur de licence, machine, et même l'installation spécifique.
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 suggère que vous envisagiez d'utiliser quelque chose comme un Diffie–Hellman key exchange (ou même RSA) pour générer une sorte de clé publique/privée qui peut être transmise à vos utilisateurs, en fonction de certaines informations. En fonction de l'application, je connais un cas où j'ai écrit le code de licence sur contrat pour une entreprise, ils ont utilisé un MAC address, et d'autres données, l'ont haché, et ont crypté le hachage, leur donnant la clé valeur ", si le numéro d'enregistrement était correct). Cela garantit que le fichier de clé ne peut pas être déplacé, (ou donné) à une autre machine, en «volant» le logiciel.
Si vous voulez creuser plus profond et éviter les pirates, qui est un tout sujet « utre ....
- 1. Comment compiler un fichier source .cpp dans un fichier .dll?
- 2. Comment déboguer un fichier DLL dans Delphi
- 3. ASP.NET licence une DLL
- 4. Comment sécuriser un produit PHP en utilisant btcompiler et les clés de licence?
- 5. Je souhaite sécuriser mon fichier txt
- 6. Modifier un fichier XML dans un fichier jar avec Java
- 7. Comment créer un fichier DLL de fichiers DTD?
- 8. configuration fichier pour DLL
- 9. FileLoadException sous Windows 2003 pour un fichier C++ dll géré
- 10. Créer un fichier avec Javascript
- 11. Excel - "Fichier introuvable: VBA6.DLL"
- 12. Ajouter un fichier à un fichier MSI
- 13. Comment vérifier si un fichier existe dans un fichier makefile
- 14. Existe-t-il un moyen de stocker un formulaire Delphi dans un fichier .dll?
- 15. winforms fichier d'installation dll problème
- 16. Copier un fichier de modification avec File.Copy
- 17. ramdisk avec un miroir de fichier
- 18. Un problème avec le fichier de commandes
- 19. Vidage du fichier dans un fichier séparé avec tomcat?
- 20. Lire une chaîne stockée dans un fichier de ressources (resx) avec un nom de fichier dynamique
- 21. Sécuriser une application web avec l'adresse mac
- 22. Renommer un fichier avec un script de traitement par lots
- 23. Comment trouver une DLL avec un CLSID?
- 24. Création d'un test Web Visual Studio pour télécharger un fichier avec un nom de fichier aléatoire
- 25. Comment ouvrir un fichier std :: fstream (ofstream ou ifstream) avec un nom de fichier unicode?
- 26. validation de problème un fichier XML avec un fichier DTD local C#
- 27. Comment créer un fichier std :: ofstream dans un fichier temporaire?
- 28. Comment lire un fichier et écrire dans un fichier texte?
- 29. Lire dans un fichier avec html droit
- 30. Test unitaire avec un fichier d'entrée
Ne lisez sur ce que vous êtes autorisé à faire dans DllMain, ce n'est pas beaucoup! – MSalters