ret*_*one 14 c# c++ encryption installer trial
我需要为我的自定义软件提供试用期.我有一个64位C#应用程序,它使用64位,多处理器支持DLL.要包含的其他实用程序是用C++编写的(exes和dlls).我必须能够加密C#代码,键入软件以仅在特定机器上运行,并强制执行无法通过重置机器时钟来阻止的到期日期.
我已经评估了几个开源和COTS解决方案:Infralution Licensing System,Protector和ExeShield,仅举几例.它们都不满足我的所有约束.
有人知道我应该考虑一个全面的解决方案吗?或者我是否需要进行一些注册表潜水并通过自定义代码强制执行?
Sea*_*n U 36
我发现,在几年的尝试不同许可系统的过程中,安全性和潜在客户疏远之间存在强烈的负相关关系.
你需要担心的盗版基本上有两种.一个是随意的盗版 - 用户使用该软件而不付费只是因为他们并没有真正考虑过支付.另一种是故意盗版 - 那些决心不付钱的人,并愿意付出实际努力.
休闲盗版可以通过基本上归结为温和提醒来处理 - 激活密钥,时间限制等.另一方面,故意盗版基本上是无法预防的.正如索尼,苹果,微软,任天堂和其他许多公司都会告诉你的那样,即使你拥有控制硬件和软件的好处,你的保护方案也将被打破.打破它的人很可能是为了一个有趣的挑战,以及获得自由软件的愿望.因此,对于某个人群来说,保护更强大不会阻止他们,它恰恰相反.
与此同时,你所做的所有尝试和实现强有力保护的东西正在推动合法用户.也许用系统时钟检测发动机管理的行程因为改变了时区而被取消了.或者他们可能不得不更换坏的硬盘或CPU或其他东西,这就引发了系统克隆机制.或者,微软可能会改变Windows的默认安全设置,导致Windows在您的应用程序正在使用时弹出一堆UAC警告,这要归功于它对您曾经试图隐藏存储许可数据的文件的某些技巧不友好.在工作中我们使用商业解决方案,并且我们发现他们的保护机制可能会因为软件中的错误而导致许可证数据被破坏,从而将用户锁定在程序之外.由于他们的系统存储数据的方式,它是一个不可恢复的情况 - 客户必须在不再使用该计算机上的软件和擦除硬盘驱动器之间做出选择.是的,它发生了多次.是的,我们已经失去了很多潜在的收入.是的,我不安地想到它造成的损害,因为我们主要依靠口碑而且它产生了很多不好的口碑.长话短说,关于早年盗版的天真妄想可能让我在加勒比地区度过了相当多的航海假期.
最糟糕的是,这对合法用户来说只是一个问题.破解者可以轻松地 - 轻松地 - 借助于 - 如果涉及到最后的度假村 - 调试器和反编译器来解决它.如果软件位于最终用户拥有的设备上,您可能会开始考虑您的软件已被破解.这就是为什么有一个小屋行业围绕人们破解他们合法拥有的软件的想法,只是为了避免软件保护机制的烦恼.他们会给你钱,但他们仍然会破解软件,因为你的副本保护只是那么令人恼火,而且很容易规避.另一种选择 - 这就是我走过的路线 - 只是购买不那么烦人的软件,或者使用免费软件.
因此,请尽量减少 - 观看时钟和演示时间,因为您需要提醒您的用户向您发送支票.但是不要以一种让他们决定不想给你支票的方式来做.如果您的目标是转换销售额,那么请将其视为最优雅,最具成本效益且最有效的系统,以防止用户因违反系统时钟而违反您的演示时间:与使用计算机的计算机相比,真的非常恼火时钟设置错误的日期.这仅适用于家庭用户.对于(合法)企业来说,它甚至不是一个可行的选择.任何不被这种情况所吓倒的人都可能是一个脚本小子,他们从来没有真正有能力为你的软件买单.