2011-12-13 26 views
0

我正在对我的Android应用程序进行最后的接触。该应用程序是一个完整的网络游戏,所以它在运行时总是使用互联网。我想阻止某人从手机中提取.apk文件,反编译代码,然后更改和扩展我的课程以对我的服务器做坏事。下面是应用程序如何在网络设置:Android黑客预防

  • 客户端连接到
  • 服务器发送客户端,用于加密
  • 服务器和客户端基于加密的数据通信的“会话密钥”服务器他们共享的密钥

现在,我担心有人会反编译我的代码并将其更改,以便他们可以在游戏中做任何他们想做的事情。有没有办法确保课程没有改变?有没有办法在运行时检查.class文件的大小?有人有主意吗?

+4

运行游戏,无需客户端 - *任何*的机会比较安全的方法方面的修改是运行服务器上的整个游戏逻辑,并只将最终的视图发送给客户端显示。 – 2011-12-13 21:36:26

回答

3

无论你如何处理你的代码,潜在的攻击者都能够以任何方式改变它,或者他认为可行。你基本上不能保护你的应用程序不被修改。并且您放入的任何保护都可以禁用/删除。

虽然你可以做不同的技巧来使“黑客”更难。例如,使用模糊处理(如果它的Java代码)。这通常会显着减缓逆向工程。

2

正如大家所说,正如你可能知道的,没有100%的安全性。不过谷歌内置Android版本的地方是ProGuard

0

如果您完全使用Java来完成您的游戏,您可以使用ProGuard对应用程序代码进行模糊处理,因此当它被黑客转化为Smali时,代码对于人类来说非常难以阅读。

如果您有包括共享库的选项,您可以在C++来验证文件大小和集成所需的代码等