0

假设您要上传“测试版”版本,但您有信任问题。您将如何添加到期日期?

我考虑过硬编码到期日期 - 但随后任何人都可以反编译/重新编译 .NET dll。

然后我想也许我应该让应用程序迭代它自己的文件并删除它们。但是,在删除一个重要的 dll 后,IIS worker 将停止,我们将无法删除其他的。更不用说我们需要对包括 BIN 在内的所有文件夹设置写权限这一事实。

嗯......有什么想法吗?

4

2 回答 2

1

在某处添加硬编码日期检查,并混淆您的应用程序。

更新:

我不会说在混淆程序集中找到日期检查会很容易,特别是如果您使用一些商业工具。当然,这不可能是 100% 安全的,我没有任何调试/破解混淆程序集的经验,但会花一些时间在谷歌上搜索商业混淆器以及它们能做什么。

除此之外,您可以使用您的应用程序运行连接到互联网的事实,您可以检查一些外部资源,当然这很容易被嗅探,但是您可以编写应用程序的一些重要部分,即一些脚本,将该脚本加密其他一些服务器。然后您的应用程序应该下载、解密并执行该脚本,因此如果您将其从远程服务器中删除,将很难重现该功能。第三方可能会下载该脚本并在不可用时提供它,请注意这一点。也许您可以使用Rosyln并使用您的 c# 代码而不是该脚本。

我没有做任何类似的事情,也许还有更多问题,这只是我的想法,所以如果你想这样做,请做你的研究:)

于 2012-05-10T14:11:50.413 回答
1

您可能希望将日期用作代码深处的一些有意义的输入变量,例如使用“超过阈值的滴答声”来计算一些计划的可伸缩性降低,所有这些都设置在不同的时间阈值,引入延迟或其他东西。如果您将它们放在多个位置并用注释 .cs 进行标记,那么您可以在需要时轻松删除它们,但从 dll 中根除成本太高。

于 2012-05-10T14:07:03.847 回答