文章总结: 该文档分析腾讯系微信小游戏使用的JceStruct协议逆向过程,通过控制台抓包发现业务数据通过WebSocket传输,定位到JCEProtocol对象中的封包函数X0b和解包函数J0b。关键发现包括加密逻辑判断机制(iFlag标志位)和动态密钥加解密流程,并通过修改aiLevel参数实现游戏难度调整的实战操作。 综合评分: 75 文章分类: 逆向分析,移动安全,WEB安全,红队,其他
【游戏逆向】腾讯系微信小游戏JceStruct协议分析
原创
挖个洞先 挖个洞先
挖个洞先
2026年4月25日 23:28 北京
在小说阅读器读本章
去阅读
“ 我们都会做出选择,那些选择会让我们走上某条道路。有时候那些选择看起来很微小,但它们足以让你走上某条道路。你想着离开,但最后你还是会回来。——《风骚律师》S5E09 ”
01
—
操作步骤
1、控制台Fetch/XHR看到只有配置文件json和ini,没有看到业务请求
2、小游戏没走http大概率走的是websocket
3、断点进入卡住请求,强制ws触发重连,跟进game.js,
发现n.JCEProtocol关键字
4、JceStruct协议分析文章
https://bbs.kanxue.com/thread-276418.htm
5、n.JCEProtocol对象里定义了封包函数X0b,收包函数J0b
// 封包函数X0b: function(t) { // 创建JCE输出流 var o = new e.Taf.nr; // 将业务明文msgBody序列化写入到o if (t.md.msgBody.writeTo(o), // 密钥d存在且ag不在ihd列表中进入加密逻辑 d && 0 > h.ihd.indexOf(t.md.Pe.ag)) { // 提取流中数据并调用ohd加密函数 var n = r.default.ohd(new Uint8Array(o.bc.bc, 0, o.bc.len), d); // 将加密后的数据重新写回流中 o.bc.vec(n.buffer), // 1,代表加密 t.iFlag |= 1 // 0,代表不加密 } else t.iFlag = 0; // 省略 new Uint8Array(o.bc.bc, 0, t)}
// 收包函数J0b: function(t, i) { // 省略 if (t = new t.va, // 判断是否存在密钥d,且i.iFlag=1加密的情况,进入解密逻辑 d && 1 == (1 & i.iFlag)) { var o = new Uint8Array(i.md.yc.byteLength); // 调用nQb解密函数,结果存入数组o r.default.nQb(new Uint8Array(i.md.yc.bc, 0, i.md.yc.byteLength), d, o), o = new e.Taf.Jn(o.buffer) // 将解密后的明文转为输入流 } // 未加密直接读取流 else o = new e.Taf.Jn(i.md.yc.bc); try { // 将流反序列化赋值给实例对象t t.readFrom(o) } catch(t) { // 抛出报错,这里可以作为关键字定位 return t instanceof Error ? e.console.warn("decode body fail,msgID:" + i.md.Pe.ag, t.message) : e.console.warn("decode body fail,msgID:" + i.md.Pe.ag, JSON.stringify(t)), l.fdk.Mhc("DecodeJceFail"), i } // 触发字典c中注册的命令号对应的回调函数,传入i和t return c[i.md.Pe.ag] && c[i.md.Pe.ag](i, t), // 将明文对象挂载到外层信封的msgBody上,在这里断点查看响应 i.md.msgBody = t, i}
6、X0b在序列化之前断点,修改难度设定,开始挑战
var o = new e.Taf.nr;
7、跟调用堆栈
e && e.XDd(this.aiLevel),
8、修改this.aiLevel=1000,人机难度由入门变成了特级大师
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:挖个洞先 挖个洞先 挖个洞先《【游戏逆向】腾讯系微信小游戏JceStruct协议分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







![[吃瓜速递]又一位大佬公众号卖号“离场”了](/images/random/titlepic/6.jpg)


评论