Android版飞机大战破解无敌模式手记

2025-11-06 02:02:34 3阅读

android游戏微信游戏

转载于:-weir/archive/2013/08/14/

,新增了游戏中心,并内置了一个经典游戏《飞机大战》。游戏其实很简单,但

由于可以和好友一起竞争排名,一时间受到大家的追捧,小伙伴们进入“全民打飞机”时代。

ios 版出来不久就被破解出了无敌模式。Android版出后好像一直风平浪静。周末无事,加之看雪

zmworm版主邀请,于是花了一天的工夫研究了下。也出了个Android版的无敌模式增强版。具体

来说就是无敌、双排子弹加无限炸弹。当然,这个不是重点,我们的重点当然是技术细节啦!

微信的游戏继承了Android版手机QQ游戏中心的思想,也采用插件动态加载方式。具体来说,就

是插件及游戏以jar包形式存在,,在运行时动态加载资源

。这样的好处是灵活管理,易于扩展。以后更多的游戏只要上架到微信的服务

器,用户就能在微信应用内部下载、安装、运行。具体原理可以参考我2011年的一篇文章

《Android类动态加载技术》。

当然,那篇文章讲的只是基本原理,而微信在代码动态加载方面则走得更远。针对插件的管理及安

全,它有一套完整的框架,并自称为sandbox。由于代码有做混淆,加之代码量挺大,所以我仅算

管中窥豹,看到的也只是冰山一角。与实际情况有所出入,还请见谅!

一、微信游戏插件的安全校验

其实说实话,微信在游戏插件的安全架构方面花了不少功夫。我能破解并不是利用微信在安全方面

的漏洞,而是Android系统本身的安全漏洞。这个漏洞也就是我前段时间发的以为是bluebox上报

google的漏洞,后来被证实不是。详情请看《Bluebox Security最新提报Android漏洞的初步探

讨》。

那微信是如何对游戏插件进行加载及安全校验的呢?

飞机大战的游戏插件以jar包的形式,放在微信apk的assets/preload文件夹下:

、so本地库及drawable图片资源或者还有xml资源。微信处理插件加载

.。加载插件资源的类叫做

PluginResourceLoader,。

而最核心的加载类应该是PluginClassLoader。上面说的PluginResourceLoader也是它的成员变

量。它似乎负责整个插件加载的各个环节调度。

Android动态加载类有一个弊端,就是dex文件必须释放为本地文件。这是dalvik虚拟机机制决定

的。一直以为google或者dalvik会改,不过似乎到现在还没见改进。释放到本地缓存的dex是很容

的。一直以为google或者dalvik会改,不过似乎到现在还没见改进。释放到本地缓存的dex是很容

易受到攻击

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。