许可证验证 - 如何检查服务器响应安全性

时间:2017-01-13 08:51:58

标签: if-statement reverse-engineering reverse license-key

我正在创建一个许可证生成器&基于PC ID的验证 - 用于创建基于许可证的PC硬件的程序。

它将pc id(例如mac address,uuid,bios序列号等)发送到创建许可证的服务器,并将其发送回客户端。

当客户想要激活程序时,他会将许可证发送到服务器并获得答案 - 基本上是真是假。

所有数据均由AES密钥加密并由服务器签名......

以下是问题 - 我可以确定反向转换器没有更改代码检查服务器的响应吗?总有这个"如果条件" (或装配中的cmp)可以改变

我尽可能地处理混淆,打包,反调试等问题,但一个好的反向器可以改变并通过它

谢谢

Avinoam

1 个答案:

答案 0 :(得分:0)

简单地说:那是不可能的。正如你所说,总会有一些“如果条件”。

我将列出一些我记得应用程序用来使破解者更难的方法:

  • 代码的校验和。如果一个破解者会改变一些代码,她还需要找到适当的校验和(可以进一步混淆)
  • 在整个代码中运行多个检查,并且可以在特定/随机时间在许多线程/任务中运行(例如,通过不同的代码路径每1分钟验证一次CDKEY)
  • 使用CDKEY加密了一些代码(所以如果你没有,那么你根本就没有应用程序的代码)
  • 在您的服务器上存储相应的代码。当用户尝试访问“新”功能(例如游戏中的下一阶段)时,应用程序将与服务器握手,如果服务器确信它不是破解者,则服务器会将相关代码发送到应用程序,然后运行它。
  • 有一个远程类似SIM的设备物理模糊处理(就像SIM卡一样),它将为计算机提供物理 API,服务器将查询该设备检查其genuinity。刚看过SIM卡。