羊了个羊解锁皮肤思路
本帖最后由 wxy1343 于 2022-9-18 18:57 编辑首先找到羊了个羊源码分析一下,通过抓包可以知道羊了个羊的域名是easygame2021.com,直接grep搜索一下找到源码
解包完可以看到这些文件
# **[解包工具](https://gist.github.com/Integ/bcac5c21de5ea35b63b3db2c725f07ad)**
打开game.js搜索一下clothes可以找到这些代码应该是读取皮肤数据的
搜索一下SHEEPCLOTHESDATA看看是什么
这些应该都是保存在本地的字段名称
那么接下来只要找到这些字段被保存在哪里就行了
用grep搜索一下SHEEPCLOTHESDATA
可以找到一个AppBrandMMKVStorage开头的文件
打开之后发现这是一个二进制文件
尝试修改字符不改变文件大小但是失败了游戏无法运行
可以在mmkv目录发现crc数据校验文件,难怪直接修改不行了
研究了一下可以知道这是腾讯的# **(https://github.com/Tencent/MMKV)**
尝试编译了一下可以成功打开这个文件,但是并没有读取到键值,不知道是什么原因有懂的可以说一下
直接修改不行但是可以通过间接修改,可以通过hook小程序读写mmkv相关的函数来实现
通过apktool反编译微信,搜索AppBrandMMKVStorage
分析一下找到m这个构造函数应该就是初始化MMKV的
所以只要在初始化完后拿到this.thf就可以随意读取MMKV了
用JsHook简单写个脚本测试一下# **(https://github.com/Xposed-Modules-Repo/me.jsonet.jshook)**
```javascript
common.hookConstructor('com.tencent.mm.plugin.appbrand.appstorage.m', ['long', 'java.lang.String'], null, function (param) {
var SHEEPCLOTHESDATA = 'wx141bfb9b73c970a9__SHEEPCLOTHESDATA';
var mmkv = common.getObjectField(param.thisObject, 'thf');
var clothes_data_str = common.callMethod(mmkv, 'getString', );
if (clothes_data_str == '') return;
common.log(clothes_data_str);
var clothes_data_arr = JSON.parse(clothes_data_str.substring(12));
clothes_data_arr.forEach(function (sheep, i) {
common.log(i, sheep.name);
sheep.unlock = true;
});
clothes_data_str = clothes_data_str.substring(0, 12) + JSON.stringify(clothes_data_arr);
common.log(clothes_data_str);
common.callMethod(mmkv, 'putString', );
clothes_data_str = common.callMethod(mmkv, 'getString', );
common.log(clothes_data_str);
});
```
查看日志可以看到已经成功读取到皮肤了
进入游戏查看一下皮肤已经全部解锁
cotrol 发表于 2022-9-19 13:29
这个朋友圈皮肤有生效吗?
皮肤只是读取的本地数据,非服务器数据,所以只会本地生效。例如安卓刷好了,pc是没有的。ios同理的 EhomeJay 发表于 2022-9-19 11:35
大佬这个是属于只能自己看到还是说直接全解锁的
只能自己看,换个地方登陆微信,就都没了 不明觉厉。大佬厉害了! 大佬这个是属于只能自己看到还是说直接全解锁的 思路秀,可惜我不会
学习一下 膜拜大佬、 大佬牛B厉害啊 厉害 这个朋友圈皮肤有生效吗? 最近真火 可惜没玩