我们都知道最近很火的“头脑王者”,虽然是一款“益智答题类”小程序,但它身上却明显带着不少“游戏”的基因。

1、强调对战:和单机闯关类答题产品不同,“头脑王者”小程序更强调“对战PK”,用户进入游戏后,会随机匹配在线的用户前来对战,如果要提前结束战斗,还会损失一定金额的金币数,提升对战的仪式感,和互动的乐趣。

2、强调礼物:用户每次登陆“头脑王者”小程序,都会显示“每日登陆奖励”的提示页面。里面的礼物对对用户闯关都有非常大的帮助。和很多游戏产品需要买装备才能过关非常相似。

值得注意的,“头脑王者”小程序不仅继承了游戏的基因,还把小程序的能力和玩法运用的非常透彻!

头脑王者小程序源码开发188.2504.1885微/电。一开始看到官方的小程序的介绍,也看了小程序的部分开发文档,本能以为微信小程序不过是一个浏览器框架,小程序也只是网页而已。首先认为小程序通过了HTTP协yi传输了相应的JS、HTML文件。开始抓HTTP协yi,发现进入小程序内部之后的数据包可以找到,但是小程序的结构包死活找不到。因此猜想可能通过其他协yi进行了传输。

使用中惊奇的发现将小程序添加至桌面,断网后发现有些小程序依旧可以使用,这个时候猜想小程序在本地有缓存。
因此,比较手笨的先删除了微信目录下的数据文件,记录此时的文件信息,接着登录自己的账号,进入小程序,添加至桌面后退出微信。对比文件信息,发现多了的几个wxapkg数据包比较可疑。
文件具体目录为./data/data/com.tencent.mm/MicroMsg/[自己的微信目录,为一串字符]/appbrand/pkg/

首先先直接将可疑数据包pull到本地电脑,方便进一步分析。这儿的小程序的文件名也是一串字符。
通过HEX分析软件分析其中一个apkg包,浏览中发现很多地方直接明文,因此猜想可能整个apkg包都没有加密。

pic.png (72.55 KB, 下载次数: 0)

下载附件 保存到相册

2018-1-11 23:49 上传


比如开头的很多文件路径,但是中间部分有较多的乱码,在后半部分又出现了明文。在这些明文中,我发现了关键字question.hortor。这个是我在抓包的时候的一个host。因此,90%的可能性发现的apkg包就是关键性的数据包。
通过对多个小程序的数据包进行分析。得出如下结论:
文件开头是一段结构,标识了数据包的一些信息,文件的后面是具体的文件的主体。
文件开头都是0xBE,0x00000000,接下来是一个四字节的索引长度、四字节的文件长度。然后就是0xED的尾部。接下来是一个四字节的文件数量,我这边的数据为0x00000045,用计算器计算是十进制的69,先按下不表。接下来数据就比较清楚了,四字节的文件名长度N,N字节的文件名,四字节的文件开始位置,四字节的文件大小。整个索引长度过后,就是正常的文件主体了。
写个代码帮我们自动进行数据包的解析
代码可以在底部下载。
通过代码,成功的还原了“头脑王者”这个小程序的代码。


更多推荐

头脑王者小程序开发源码分析