2010-11-25 6 views
0

Hi J'ai mis en place un mécanisme de protection contre la copie avec le modèle LicenseProvider de Microsoft et une paire de clés publique/privée pour empêcher la copie d'un programme d'un PC à un autre. Très simple. Au démarrage, un fichier de licence doit contenir des informations chiffrées sur l'ordinateur, la date d'expiration et le nom de l'assembly pour lequel ce fichier de licence est destiné. Mais que se passe-t-il si quelqu'un renomme le fichier de licence de MyProgramA.exe.lic en MyProgramB.exe.lic? Si les deux programmes sont protégés contre la copie en utilisant la même méthode, il suffit de renommer le fichier .lic pour avoir une licence ProgramB valide. C'est pourquoi j'ai stocké le nom de l'assembly dans le fichier .lic. Les noms d'assembly doivent correspondre.Vérifier si un fichier de licence est créé pour l'assemblage protégé contre la copie

Maintenant, que se passe-t-il si quelqu'un remplace à la place ProgramB par ProgramA? Les noms d'assembly correspondraient et encore la licence serait valide. Avez-vous des idées pour rendre ce système plus résistant aux balles?

Encore une fois, il s'agit d'une solution propriétaire simple, donc pas d'obfuscation, et pas d'outils de tiers que je connais existent.

Merci!

Répondre

0

Si vous signez votre assembly alors je ne crois pas que les gens peuvent le renommer avec succès.

1

Enregistrez le nom de l'assembly (PAS le nom du fichier) dans le fichier lic. Le nom de l'assembly sera le même même si le nom du fichier est modifié.

Encore mieux est simplement d'utiliser différentes clés de chiffrement pour différentes applications. De cette façon, peu importe si les fichiers exe ou lic sont renommés.

Questions connexes