我有一个.净DLL(C#/VB)定制的控制,扩展和其他的东西。

我想它应该可以为我只。是否有任何方式限制未经授权的访问DLL?

有帮助吗?

解决方案

你最好的选择是包装/密/混淆DLL作为安东指出。然后祈祷那不会有人去过所有的麻烦拆包。

通常的术语为这是简单的"包装".

这是什么游戏开发人员做f。前索尼的 这样的定义保护了每.

但是,所有包装的程序有同样的缺点:

  1. 他们可以反向工程和加密钥必须嵌入的二进制
  2. 他们通常花钱,而那些没有(UPX)是容易解开。
  3. 平台个不的问题,可以介绍了由拆解过程。
  4. 包装的二进制文件往往会怪物抗病毒。

公司使用包装通常船舶的二进制文件必须能够运行,在每一个可以想象的计算机。如果你真的是认真的,我猜你可以密每一个dll附带一个独特的关键,然后要求它跑了互联网接入的一些挑战,应魔术的期间解密阶段。矫枉过正,在任何速度。

你也可以让你自己封隔器,但相信我,当我说:你不想去那里;)

总之,你想要什么不是简单以实现更大的球员。需要多长时间对于一个这样的定义保护了每游戏展示了piratebay?所以你唯一能做的就是"提升",并希望被忽视,通过良好的反向工程师。

最后,知道你在说什么自己的成:它将是值得的对吗?让我们说的你的运DLL解包-因为它是。人们将仍然需要进行反向工程,它使用它。谁使用无证件第3-缔约方图书馆?我只做过一次或两次,在时刻的精神错乱。

其他提示

好了,不首先重新分配组件。只要装配是在野外,任何人都可以使用它。您可以通过混淆它这个困难,但“入口点”仍然会在那里和使用

从理论上说,你可以用 CAS 的东西,但我不是特别相信这是在所有可能的。

也许你可以使用许可/版权保护工具来改变你的DLL。而来电者里面,您提供所需的许可证号。

这是不能完全可能的。如果你希望你的代码运行,它必须是可执行的。你可以把在检查,打包,加密密钥,监督者,显示器,协管员,以及各种许可方案,但如果你的代码工作它以某种方式解锁,以便它可以被用来在这一天结束。

这是为什么DRM不起作用。要保护X,但你希望别人查看。问题是你不想要观看/使用X和你使用X想要的人,在一定水平的人,的同一人的。

我够了处理第三方许可码(断裂/注销/思维我是不是一个合法的用户,当我应该是),我成为一个FSF构件。这是不值得我的时间去解决别人的限制,它不值得我的时间来对付他们。他们的代码是不是所有的特殊。

如果你强命名程序集,考虑使用的 PublisherIdentityPermissionAttribute 。您可以添加到您的DLL只有用正确的出版商签订的关键部件将能调用到该方法或类。

这是免费的,内置在.NET框架。如果您需要额外的功能(如授权的DLL给其他开发者的能力)认为像我们的工具的 DeployLX许可

您必须在DLL中添加检查,以验证调用者就是你。但是,这引起了其他挑战:

你怎么证明你是你的DLL。 (你可以检查像当前用户名简单的东西,但是这可能不是完美的)。

您可能需要EXE文件是由您的证书签名。

您应该检查出牌的基础设施。我不知道如何实现它,但是你通过创建.licx文件中使用它,然后,我认为,构建过程使用的lc.exe工具做一些嵌入许可证。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top