Question

J'ai un DLL .NET (C # / VB) avec des contrôles personnalisés, d'extension et d'autres choses.

Je veux qu'il devrait être disponible que pour moi. Est-il possible de restreindre l'accès non autorisé à un DLL?

Était-ce utile?

La solution

Votre meilleure option est d'emballer / Crypter / la DLL comme obfusquer Anton a souligné. Et puis priez pour que personne ne passera par tous les tracas de le déballer.

Le terme habituel pour c'est tout simplement « d'emballage ».

est ce que les développeurs de jeu font avec p.ex Sony SecuROM .

Mais tous les programmes d'emballage ont les mêmes inconvénients:

  1. Ils peuvent être désossé et la clé de chiffrement doivent être intégrées dans le binaire
  2. Ils coûtent habituellement de l'argent, et ceux qui ne le font pas ( UPX ) sont facilement décompressé .
  3. Plate-forme de problèmes peuvent être introduits Matières à éviter le processus de décompression.
  4. binaires ont tendance à paniquer paniers Anti-virus sur.

Les entreprises qui utilisent les emballeurs généralement binaires des navires qui doivent être en mesure d'exécuter sur chaque ordinateur pensables. Si vous avez vraiment voulu dire, je suppose que vous pouvez chiffrer chaque dll unique livré avec une clé unique et exiger qu'il soit couru avec un accès Internet pour un peu de magie défi-réponse lors de la phase de décryptage. Overkill en tout cas.

Vous pouvez aussi faire votre propre emballeur, mais croyez-moi quand je dis: Tu ne veux pas y aller;)

En bref, ce que vous voulez n'est pas simple à réaliser, même pour les grands joueurs. Combien de temps faut-il pour un jeu de SecuROM pour afficher sur piratebay? La seule chose que vous pouvez faire est « monter la barre » et l'espoir de passer inaperçu par les bons inverse ingénieurs.

Enfin, sachant ce que vous vous embarquez: Sera-ce la peine pour vous? Disons que vous la DLL expédié décompressé - comme il est. Les gens auront toujours besoin de désosser pour l'utiliser. Qui utilise les bibliothèques 3 parties sans papiers de toute façon? Je ne l'ai fait qu'une fois ou deux fois dans les moments de folie.

Autres conseils

Eh bien, ne redistribue pas l'assemblée en premier lieu. Dès que l'assemblage est dans la nature, tout le monde peut l'utiliser. Vous pouvez faire cela plus difficile par mascage , mais « points d'entrée » seront toujours là et utilisable .

En théorie, vous pouvez faire quelque chose avec CAS , mais je ne suis pas particulièrement sûr que ce est possible.

Peut-être que vous pouvez utiliser des outils de protection de licence / copie pour modifier votre dll. Et à l'intérieur de l'appelant, vous fournissez le numéro de licence requise.

Ce n'est pas tout à fait possible. Si vous voulez que votre code à exécuter, il doit être exécutable. Vous pouvez mettre en chèques, l'emballage, les clés de chiffrement, les chiens de garde, les moniteurs, les gardiens et les divers régimes de licences, mais à la fin de la journée si votre code fonctionne, il doit être déverrouillé en quelque sorte pour qu'il puisse être utilisé.

Voilà pourquoi DRM ne fonctionne pas. Vous voulez protéger X, mais vous voulez que quelqu'un d'autre pour l'afficher. Le problème est la personne que vous ne voulez pas afficher / X à l'aide et la personne que vous ne voulez en utilisant X sont, à un certain niveau, la même personne .

Je suis tellement marre de traiter avec le code de licence 3ème partie (rupture / désenregistrement / pensée je ne suis pas un utilisateur légitime quand je devais être) que je suis devenu membre de la FSF. Ça ne vaut pas mon temps à travailler autour des restrictions de quelqu'un d'autre, et ça ne vaut pas mon temps de traiter avec eux. Leur code était pas du tout spécial.

Si vous êtes fort nommer vos assemblées, pensez à utiliser la DeployLX licences .

Vous devez ajouter des contrôles dans la DLL pour vérifier que l'appelant est vous. Mais cela soulève d'autres défis:

Comment prouvez-vous que vous êtes à une DLL. (Vous pouvez vérifier quelque chose plus simple comme le nom d'utilisateur, mais peut-être pas parfait).

Vous pouvez exiger que le fichier exe est signé par votre certificat.

Vous devriez vérifier l'infrastructure de licence. Je ne sais pas comment la mettre en œuvre, mais vous l'utiliser en créant un fichier .licx puis, je pense, le processus de construction utilise l'outil lc.exe pour faire quelque chose pour intégrer la licence.

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