我目前正在编写一个商业程序在c#中,通过服务器检查许可证密钥是否有效。通过服务器和服务器操作的许可证检查
我的问题是(没有给出关于过程的任何细节);如果我的根域和IP地址(用于检查服务器数据库中的许可证密钥)已添加到主机文件中,并且如果地址已添加,然后通过编程方式将它们从主机文件中删除,检查主机文件是否好主意? (或前缀#)
还有另一个检查瓦特等。服务器运行?
我该如何避免服务器操作?
谢谢。
我目前正在编写一个商业程序在c#中,通过服务器检查许可证密钥是否有效。通过服务器和服务器操作的许可证检查
我的问题是(没有给出关于过程的任何细节);如果我的根域和IP地址(用于检查服务器数据库中的许可证密钥)已添加到主机文件中,并且如果地址已添加,然后通过编程方式将它们从主机文件中删除,检查主机文件是否好主意? (或前缀#)
还有另一个检查瓦特等。服务器运行?
我该如何避免服务器操作?
谢谢。
您可以检查C:\ Windows \ system32 \ drivers \ etc \ hosts的内容,但可以再次绕过该内容。通过设置一个自定义DNS服务器,它将为激活服务器的DNS名称返回本地网络IP地址。一般而言,只有在密钥有效或无效的情况下才会咨询网站的许可算法总是会被绕过,因为您可以随时反编译或反汇编程序以查看它正在等待什么类型的响应,然后构建您自己的欺骗性激活服务器。特别要注意现在存在的反编译器,例如“Telerik JustDecompile”适用于任何.NET程序集(这包括您的C#程序),它还可以反混淆可能使用的常见混淆器。这样,可能很容易找出您的授权算法的工作原理。在我看来,公钥密码学应该是安全许可方案的良好基础,例如在签名的激活密钥上检查有效的RSA签名;但是再一次,授权算法本身就是整个计算机科学的范畴。所以基本上我想说的是,你的授权算法应该是安全的,不应该依赖于检测系统上运行的任何破解的激活服务器/调试器/任何东西。