防止破解 - 特别是使程序更难以反编译的方法

时间:2010-11-28 07:29:46

标签: c++ encryption protection cracking

我正在制作一个具有客户端和服务器端的商业产品。客户端完全依赖于服务器,只是为了让它更难破解/盗版。问题是,即便如此,有人可能会对协议进行反向工程并制作自己的服务器。

我曾考虑使用ssl或其他算法加密连接,因此仅通过嗅探客户端和服务器之间的流量就不会轻易找出协议。

现在我唯一可以想到的是盗版者会使用的是反编译程序,删除加密并尝试查看“纯文本”协议以便对其进行逆向工程。

我已经阅读了之前的主题,我知道不可能破解,但是程序员可以为我们的代码带来哪些调整,使其成为破解者的头疼问题?

4 个答案:

答案 0 :(得分:11)

阅读how Skype did it。无论如何,总的来说,这是不可能的。

答案 1 :(得分:3)

您需要注意的一件事是,大多数打包器/加密器会导致病毒扫描程序出现误报。这可能非常烦人,因为人们总是抱怨你的软件含有病毒(他们没有得到误报的概念)。

对于协议混淆,请勿使用SSL。当您使用纯文本调用Send时,攻击者拦截明文是微不足道的。使用SSL保护连接并在发送数据之前对数据进行模糊处理。混淆算法不需要加密安全。

答案 2 :(得分:1)

恕我直言,很难隐藏真正的普通代码。大多数包装商所做的是使其难以打补丁。但是,在您的情况下,Themida可以解决问题。

以下是一些关于撰写良好保护的好建议:http://www.inner-smile.com/nocrack.phtml

答案 3 :(得分:1)