让黑莓手机更安全的Android游戏

时间:2013-05-29 17:22:39

标签: java android copy-protection

我刚在youtube上观看了this视频。据我所知,黑客总是能够破解,但我正在寻找一种解决方案来提高我的游戏安全性。

我不希望用户能够更换他们的硬币。加密或混淆是一种选择吗?

我正在寻找一种轻量级的解决方案。

请分享您所知道或已做过的事情,以防止(更难)发生这种情况。

2 个答案:

答案 0 :(得分:1)

我使用数据和盐创建MD5哈希并将其存储在数据库中。

示例:

Score: 1234
Lives: 3

Calculate MD5 from: "fsjdhASd8adnsa9asdmasdsd#1234#3#AS88asdDA*ASD8ASdmas"

Store on the database: 1234|3|b7f67f11fed055cce28d6f50fd829e9c

从数据库中读取时,我将得分和生命值与我所知道的盐连接起来,并检查它是否与存储的md5哈希相匹配。

示例:

Read score = 1234
Read lives = 3

Concatenate "fsjdhASd8adnsa9asdmasdsd#" + score + "#" + lives + "#AS88asdDA*ASD8ASdmas"
Calculated MD5 = b7f67f11fed055cce28d6f50fd829e9c

Calculate the MD5 from this string and check if it matches with the stored hash

如果分数改为9999,我会得到哈希0d64ebead4451f826c15b5d03853f8da,因此无效!

显然这不是绝对可靠的,用户可能会对代码进行逆向工程并对其进行更改,但这会让事情变得更难!

有些人仍然试图修改它,但后来我向服务器发送消息,将用户标记为骗子!

答案 1 :(得分:0)

最可靠的方法是存储重要信息服务器端并让客户端与服务器交互。 由于这些黑客只是在客户端试图为硬币购买东西时才是客户端,因此您应该询问服务器服务器是否允许购买。

当然,这可以通过劫持网络响应,伪造服务器以及如果不添加安全措施而不会被攻击。但至少这种黑客行为无效。

但加密或混淆也应该在某种程度上起作用,因为无法搜索该值,但是如果有人对您的应用程序进行逆向工程,那么也不会很难弄清楚如何做到这一点。 ProGuard可能会让你更安全一点,但服务器端仍然是最安全的方式。