我正在制作一个具有客户端和服务器端的商业产品。客户端完全依赖于服务器,只是为了使其更难破解/盗版。问题是,即便如此,仍有可能有人会对协议进行逆向工程并制作自己的服务器。
我考虑过使用 ssl 或其他算法加密连接,因此仅通过嗅探客户端和服务器之间的流量来找出协议并不容易。
现在我能想到的盗版者唯一会使用的是反编译程序,删除加密并尝试查看“纯文本”协议以对其进行逆向工程。
我已经阅读了以前的主题,并且我知道无法破解是不可能的,但是我们程序员可以对我们的代码进行哪些调整,使其成为破解者的一大难题?
我正在制作一个具有客户端和服务器端的商业产品。客户端完全依赖于服务器,只是为了使其更难破解/盗版。问题是,即便如此,仍有可能有人会对协议进行逆向工程并制作自己的服务器。
我考虑过使用 ssl 或其他算法加密连接,因此仅通过嗅探客户端和服务器之间的流量来找出协议并不容易。
现在我能想到的盗版者唯一会使用的是反编译程序,删除加密并尝试查看“纯文本”协议以对其进行逆向工程。
我已经阅读了以前的主题,并且我知道无法破解是不可能的,但是我们程序员可以对我们的代码进行哪些调整,使其成为破解者的一大难题?
阅读Skype 是如何做到的。无论如何,一般来说,这是不可能的。
您需要注意的一件事是,大多数打包程序/加密程序会导致病毒扫描程序误报。这可能很烦人,因为人们一直抱怨您的软件包含病毒(他们没有得到误报的概念)。
并且对于协议混淆不要使用 SSL。当您使用明文调用时,攻击者拦截明文是微不足道的Send。使用 SSL 保护连接并在发送数据之前对其进行模糊处理。混淆算法不需要是密码安全的。
恕我直言,很难隐藏实际的纯代码。大多数打包者所做的就是使其难以修补。但是,就您而言,Themida可以解决问题。
以下是一些关于编写良好保护的好技巧:http: //www.inner-smile.com/nocrack.phtml