9
votes

Comment empêcher une DLL d'être chargée dans d'autres applications

Actuellement, je développe une application C # .NET dans laquelle j'utilise un contrôle personnalisé que j'ai développé il y a quelque temps. J'ai besoin que la DLL soit expédiée dans la nouvelle application - mais de manière compréhensible, je ne veux pas que le fichier DLL soit utilisé pour les applications étrangères.

C'est pourquoi j'ai besoin de la DLL personnalisée pour être compilée dans la nouvelle application. Actuellement, la DLL est copiée dans le répertoire d'applications.

Des idées? Devrait être trivial imho.

merci et respects, Daniel


1 commentaires

Si vous mettez votre code dans l'ordinateur de quelqu'un d'autre, ils peuvent l'exécuter. Tout ce que vous faites pour empêcher que cela soit au mieux une bosse de vitesse.


4 Réponses :


5
votes

Je pense que vous devez rechercher une licence de votre contrôle: http://msdn.microsoft.com/en-us/library/fe8b1eh9.aspx


1 commentaires

Merci pour toutes ces réponses - je vais essayer celui-ci et revenir si nécessaire.





0
votes

Il y a un certain nombre de hacks différents que vous pouvez faire pour que cela soit plus difficile à utiliser. Tous peuvent être contournés, mais telle est la vie.

Vous pouvez regarder cette réponse ici pour refuser un assemblage inconnu pour référencer votre assemblée: Assemblages C # sécurisés d'appelants non autorisés

Vous devriez obscorer votre assemblée si vous êtes vraiment nerveux à ce sujet. Cela le fera plus difficile à décompiler. Quelque chose comme Babel fonctionne bien: http://babelobfuscat.blogspot.com/

Vous pouvez également utiliser ILMERGE pour stocker l'assemblage dans un autre assemblage. Cependant, cette assemblée sera extraite et exposée au moment de l'exécution. Vous pouvez faire quelque chose dans ces lignes pour extraire une ressource binaire d'un assemblage et créer un assemblage temporaire qui est utilisé au moment de l'exécution. Si quelqu'un est vraiment motivé, ils peuvent trouver l'assemblage temporaire aussi ...

La vraie question est la distance que vous voulez aller!? À un moment donné, cela ne vaudra pas la peine. C'est là que vous vous arrêtez.


1 commentaires

Hum, je ne veux pas aller très loin - tout ce que je veux, c'est que la DLL n'est pas visible dans le répertoire d'applications à première vue ou la protège contre l'incorporation facilement. Je sais: Tout fait par les humains peut être piraté ou détruit par des humains. Si Microsoft, Apple et d'autres grandes entreprises ne sont pas en mesure d'obtenir une protection réelle contre le piratage de leurs logiciels - Comment puis-je penser à être capable ... ;-)