-
19-09-2019 - |
题
我有一个.净DLL(C#/VB)定制的控制,扩展和其他的东西。
我想它应该可以为我只。是否有任何方式限制未经授权的访问DLL?
解决方案
你最好的选择是包装/密/混淆DLL作为安东指出。然后祈祷那不会有人去过所有的麻烦拆包。
通常的术语为这是简单的"包装".
这是什么游戏开发人员做f。前索尼的 这样的定义保护了每.
但是,所有包装的程序有同样的缺点:
- 他们可以反向工程和加密钥必须嵌入的二进制
- 他们通常花钱,而那些没有(UPX)是容易解开。
- 平台个不的问题,可以介绍了由拆解过程。
- 包装的二进制文件往往会怪物抗病毒。
公司使用包装通常船舶的二进制文件必须能够运行,在每一个可以想象的计算机。如果你真的是认真的,我猜你可以密每一个dll附带一个独特的关键,然后要求它跑了互联网接入的一些挑战,应魔术的期间解密阶段。矫枉过正,在任何速度。
你也可以让你自己封隔器,但相信我,当我说:你不想去那里;)
总之,你想要什么不是简单以实现更大的球员。需要多长时间对于一个这样的定义保护了每游戏展示了piratebay?所以你唯一能做的就是"提升",并希望被忽视,通过良好的反向工程师。
最后,知道你在说什么自己的成:它将是值得的对吗?让我们说的你的运DLL解包-因为它是。人们将仍然需要进行反向工程,它使用它。谁使用无证件第3-缔约方图书馆?我只做过一次或两次,在时刻的精神错乱。
其他提示
也许你可以使用许可/版权保护工具来改变你的DLL。而来电者里面,您提供所需的许可证号。
这是不能完全可能的。如果你希望你的代码运行,它必须是可执行的。你可以把在检查,打包,加密密钥,监督者,显示器,协管员,以及各种许可方案,但如果你的代码工作它以某种方式解锁,以便它可以被用来在这一天结束。
这是为什么DRM不起作用。要保护X,但你希望别人查看。问题是你不想要观看/使用X和你使用X想要的人,在一定水平的人,的同一人的。
我够了处理第三方许可码(断裂/注销/思维我是不是一个合法的用户,当我应该是),我成为一个FSF构件。这是不值得我的时间去解决别人的限制,它不值得我的时间来对付他们。他们的代码是不是所有的特殊。
如果你强命名程序集,考虑使用的 PublisherIdentityPermissionAttribute 。您可以添加到您的DLL只有用正确的出版商签订的关键部件将能调用到该方法或类。
这是免费的,内置在.NET框架。如果您需要额外的功能(如授权的DLL给其他开发者的能力)认为像我们的工具的 DeployLX许可。
您必须在DLL中添加检查,以验证调用者就是你。但是,这引起了其他挑战:
你怎么证明你是你的DLL。 (你可以检查像当前用户名简单的东西,但是这可能不是完美的)。
您可能需要EXE文件是由您的证书签名。
您应该检查出牌的基础设施。我不知道如何实现它,但是你通过创建.licx文件中使用它,然后,我认为,构建过程使用的lc.exe工具做一些嵌入许可证。