C# Cracksafe应用认证系统

C# Cracksafe应用认证系统,c#,authentication,cracking,C#,Authentication,Cracking,我们正在开发在线软件,需要对服务器进行用户名/密码验证。有两种用户(付费用户和免费用户)。当然,付费用户应该具有与免费用户不同的可用功能。不幸的是,我们的应用程序在每一个新版本发布后的1-2周内就会被破解。我们想为现有的认证系统或能做到这一点的专家付费,这使得破解程序尽可能地困难。我们有一些防裂的经验,但这次我们不知道了 这就是我们所尝试的: -将身份验证分为两部分(AES-256发送和AES-256接收,每个会话都有自己的nonce-8char静态nonce和24char灵活nonce) -这

我们正在开发在线软件,需要对服务器进行用户名/密码验证。有两种用户(付费用户和免费用户)。当然,付费用户应该具有与免费用户不同的可用功能。不幸的是,我们的应用程序在每一个新版本发布后的1-2周内就会被破解。我们想为现有的认证系统或能做到这一点的专家付费,这使得破解程序尽可能地困难。我们有一些防裂的经验,但这次我们不知道了

这就是我们所尝试的: -将身份验证分为两部分(AES-256发送和AES-256接收,每个会话都有自己的nonce-8char静态nonce和24char灵活nonce) -这两个部分都使用了两个不同的模糊器(EAZFOUSCATOR+虚拟化功能和具有虚拟化功能的ConfuserEx)进行了模糊处理。 -几个杀手开关 -MD5检查(它们没有帮助,因为破解程序正在创建一个模拟我们的身份验证服务器的“加载程序”)


你知道有哪家公司提供这种服务吗?应用程序是用C#编写的。

让应用程序在每次向服务器发送任何内容时生成一个随机令牌字符串。然后让您的服务器根据令牌将加密字符串发送回应用程序。如果来自服务器的加密令牌字符串解密为原始内存中的随机令牌字符串,则允许软件继续…如果不是,则停止执行。这将停止装载机


当你以纯文本形式发送回复时,破解者可以很容易地欺骗它,因为他们知道如何模仿它。对回复进行加密,使其每次都是随机的,这样更难破解。

您的问题与主题无关,因为我们不建议其他公司提供服务。也欢迎其他解决方案,我很抱歉!如果您的身份验证服务器可以很容易地进行模拟,那么您的服务器很可能总是使用相同的ACK文本进行响应。你也许应该包括日期和时间。如何创建许可证密钥?计算机硬件相关ID是否用于生成相应的密钥?您可以通过使用公钥和私钥的非对称加密和身份验证来避免服务器模拟。我们为每个会话创建一个唯一的ID,但当然我们还必须将此密钥传输给用户,并且此ID需要由客户端验证当然,这是我们正在做的,但是黑客能够读取我们的代码,即使我们使用虚拟化作为加密。