好友
阅读权限20
听众
最后登录1970-1-1
|
本帖最后由 misauzer182 于 2019-9-18 14:03 编辑
最近自己玩的一款android游戏
想看看游戏里的小游戏-赛跑活动的代码
该活动开始后,可以控制人物跳跃,每局游戏会随机生成障碍物,游戏内可以使用道具加速
Post密文如下:
[Asm] 纯文本查看 复制代码 "prop":"320,340,340,316,332,352,320,340,340,316,332","SList":"320,316,324,316,344,316,336,316,336,316,364,316,336,316,336,316,324,316,328,316,324,316,324,316,324,316,324,316,344,316,364,316,324,316,336,316,324,316,324,316,336,316,324,316,324,316,324,316,336,316,324,316,360,316,360,316,364,316,324"
根据参数名称,猜测第一段prop数据是道具的id及数量,第二段SList数据为游戏数据
反复游戏截取数据猜想加密方式 是 凯撒密码?(不确定)
按照凯撒密码解:(反复使用道具,改变使用数量并记录抓包得出如下结果)
0 332
1 328
2 324
3 320
4 348
5 344
6 340
7 336
8 364
9 360
再配合密文解(因为游戏可以控制的只有道具数量,所以316及352暂时不清楚是什么符号),316暂时用" : "代替, 352使用 空格代替
320,340,340,316,320,352,320,340,336,316,340 (第一个道具使用3个,第二个道具使用6个)
3 6 6 : 3 3 6 7 : 6
366:3
367:6
这个结果跟我已知的道具ID就符合了(有点强行凑的意思,没办法笨人只能用笨办法)
第二段数据
3 2 5 7 7 8 7 7 2 1 2 2 2 2 5 8 2 7 2 2 7 2 2 2 7 2 9 9 8 2
第二次抓包第二段数据
5 2 9 8 10 4 6 6 2 4 1 2 2 2 1 1 2 1 2 1 9 2 2 1 7 1 1 1 7 5
第三次抓包第二段数据
4 2 1 1 4 4 9 9 2 1 2 2 2 2 1 7 2 3 2 2 6 2 2 2 1 5 5 6 6 10
这段数据解出来 就完全看不懂了,及时障碍物刷新的一模一样,这段数据也不同
到这里,如果想真正了解第二段数据,只能逆向了
但自己对android游戏没有一点经验,只能硬着头皮上了
最初是在java层搜索相关字符串,结果没有一个是相符的
查阅了相关资料,了解到游戏一般会使用lua、cocos2dx这些引擎
按照一般思路,先修改.apk为.zip,解压根目录如下
据说重点要关注accets目录,如下
看到spine-lua猜想使用的是lua脚本,但遍历目录也没找到一个lua文件
最后查看resource.car文件
看到很多.lu后缀的文件名,但是目录下也找不到这些文件
于是疯狂恶补搜索.car如何打开或解密文件
可能是car的关键词太多,度娘一下午也没找到相关资料
到这里基本上就没思路了
不甘心,或许ios上可以给我什么惊喜
果然,在ios上得到了这些文件,看起来全都是脚本文件了,包括子文件夹内所有的文件,都是.lu结尾的
到这里很激动也很忐忑,打开main.lu看一下
是的,怎么可能这么简单,乱码了
使用winhex 查看.LU文件头,如下
所有的.LU文件头都是 "PaoYou"
又开始恶补LUA解密,了解到这属于lua加密的签名
在lib\liblua.so搜索PaoYou,没有结果
后来查资料看到游戏本身调用方法是调用so中的loadbuffer来解密
这些跟查到的资料里,完全不一样,没办法了
求助大神,有什么思路解这种.LU文件
liblua.so及main.lu已上传至云盘
链接:https://pan.baidu.com/s/1UQwJKj3XXACy6Wz4aZMI8g
提取码:hehb |
|