首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET应用防裂技术

.NET应用防裂技术
EN

Security用户
提问于 2019-12-30 05:46:21
回答 1查看 356关注 0票数 0

我想保护我的软件不被破解。在产品上市之前,防裂是至关重要的。

有关该软件的信息:

  • 使用.NET C#构建(Framework4.5.2)
  • WinForms
  • 32位

我做了几个保护层:

  • 混淆,重命名,反调试
  • 软件与API server (RSA)的加密通信
  • 客户端将生成一个临时AES密钥,并使用服务器公钥对其进行加密,然后将其发送到服务器,服务器将使用他的RSA私钥解密数据,并在第一次请求时使用客户端提供的加密的新AES密钥进行响应。然后,客户端到服务器之间的任何通信都将由服务器RSA发布密钥签名,并由服务器提供的AES密钥加密。
  • 通过从API请求库校验和来验证库的完整性,并对其进行比较。

最重要的是,应用程序一旦从API服务器请求“自定义数据”并将其存储在内存中,由内部软件功能使用。当应用程序中的函数调用它时,它将使用“自定义数据”作为输入,因此,如果没有“自定义数据”,软件就无法正确操作。

API服务器在验证软件激活代码和机器唯一ID之后提供“自定义数据”。

问题是:

  • 有了所有这些层,软件会崩溃吗?
  • 自定义数据层可以绕过吗?
  • 如果一个破解者绕过保护层直到“自定义数据”部分,那么就有可能克隆带有“自定义数据”的软件,这意味着软件可以在不需要从API请求自定义数据的情况下运行?

我所说的自定义数据是使软件混合,总是需要从API到函数

的数据。

我指望的是“自定义数据”保护层。

请让我听听你的建议。非常感谢

EN

回答 1

Security用户

发布于 2019-12-30 05:52:24

你在浪费时间。

我想保护我的软件不被破解。在产品上市之前,防裂是至关重要的。

即使是软件开发中的大人物也无法保护他们的软件不被破解。尽管非常严厉的DRM会让合法用户疯狂,但在发布后的几天内,所有这些内容都会出现在盗版网站上。

  • 混淆,重命名,反调试

其他人也这么做。它所做的就是稍微减缓攻击者的速度。

  • 软件与API server (RSA)的加密通信

我假设您正在将公钥硬编码为密匙钉扎的形式,以防止MITM攻击。但是,在这种情况下,这是行不通的,因为客户端也是攻击者。他们只需修补二进制文件并用自己的MITM公钥替换密钥。

  • 通过从API请求库校验和来验证库的完整性,并对其进行比较。

不起作用。如果检查是在客户端上,攻击者将只是修补它。如果检查是在服务器上,那么客户端需要向服务器报告文件内容,攻击者只会让客户撒谎。

  • 有了所有这些层,软件会崩溃吗?
  • 自定义数据层可以绕过吗?
  • 如果一个破解者绕过保护层直到“自定义数据”部分,那么就有可能克隆带有“自定义数据”的软件,这意味着软件可以在不需要从API请求自定义数据的情况下运行?

是的,是的,是的。

如果您希望您的任何数据不受其计算机运行客户端的人的影响,则客户端需要没有访问该数据的任何权限。所有这些都需要在服务器上单独处理。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/223438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档