点击上方蓝字[协议分析与还原]关注我们


 快速破解小游戏常见的数据签名算法。

最近在分析各种小游戏的协议,本文以《我不是无双》这款小游戏为样例介绍这类小游戏的分析方法。

01

抓包

在分析开始,首先明确分析的目的是学习这款游戏的网络协议算法,当然,对协议的分析得从抓包开始,很容易,我们抓到了协议流量报文,像下面这样:

POST https://light-wbsws.ohayoo.cn/102 HTTP/1.1
Accept-Encoding: identity
Content-Type: application/json;charset=UTF-8
User-Agent: 协议分析与还原
Host: light-wbsws.ohayoo.cn
Connection: Keep-Alive
Content-Length: 182{"platform":"jrtt","openId":"ProtoSec","time":1614995503,"version":3,"sig1":"555555555555555?0CQEGKL@5UEA?O1O2VVXWSNBH1BK34UWUJTO./","sig":"aaaaaaaaaabd920d9c329251d4bc4a81"}

简单分析就发现,这里面有两个值sig1和sig,是用来对数据校验的特征,那我们的目标就更明确了,是分析这两个值的生成算法。

02

解包

要分析校验值的生成算法,当然要解包了,解开apk,很容易知道这款游戏是使用cocos2d进行开发的,打开assets目录,能够看到jsc文件:

打开jsc看一眼,不是spidermonkey编译的那类,当然,lib目录下面还有libcocos2djs.so,毫无疑问,游戏的实现逻辑在jsc内,将jsc解密,得到原始的js即可找到签名算法的实现了。

03

hook分析

这类加密的jsc文件,在应用打开时会被解密成js,这个过程在libcocos2djs.so内完成,所以分析这个文件就可以找到算法了。

一般来说,大部分游戏内的jsc文件的加密方式都是xxtea,很多密钥也是在so中写死的,所以,很多时候,可以直接用工具从so中将内置字符串导出,然后找到固定位置来取密钥字符串。

这里稍微复杂点,介绍更通用的方法,就是hook了,首先,我们使用IDA打开so,很容易就找到了xxtea的解密函数位置:

打开xxtea_decrypt函数:

记下地址,顺便看下函数的伪码方便确定我们要查看的函数参数:

我们使用Frida来hook,根据函数地址及参数,写好后运行,很容易就得到了结果:

这arg2的六个字节就是xxtea密钥,使用jsc解密工具解开,就拿到了原始的js文件了:

一般这种小游戏,逻辑基本在index.js内,根据需要具体分析即可,你看,逻辑很完整:

04

算法

拿到了原始的js文件,那接下来的分析基本就没难度了,当然,有的时候也有,毕竟,代码看不懂是常事。

通过阅读代码,很容易就得到无双的两个签名的算法。

sig1是一个字符串编码(deviceid,time) ,加time得到的值。

而sig是一个包含platform、openId、version、data、clientVersion、sig1等项的md5值,并且包含salt值(获取ProtoSec),这现在基本是常规操作啦。

大家有兴趣就自己分析下,这里不详细写了。

05

结束

这类jsc加密的游戏的分析就写到这里了,这是这类游戏比较通用的分析方法,难度不是很大,有些难度大些的碰到再说了。

大家如果要解密和分析这类游戏,到这里来,肯定没错,大家多交流。

别忘点“在看”、“赞”和“分享”

新的规则,及时收推文要先给公号星标

别忘了星标一下,不然就错过了

长按进行关注,时刻进行交流。

cocos2dx小游戏数据签名算法破解相关推荐

  1. 使用java完成一个猜数字的小游戏(数据范围在1-100之间)

    最近开始学java,使用java做一个猜数字的小游戏,代码不多,我就直接贴代码了 /** A:案例演示* 需求:猜数字小游戏(数据在1-100之间)*/import java.util.Scanner ...

  2. 怎么把4399小游戏的代码_25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 还记得童年的网页小游戏吗?今天带大家爬取4399小游戏网站的数据,游戏名字+链接地址 目标网 ...

  3. 25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 还记得童年的网页小游戏吗?今天带大家爬取4399小游戏网站的数据,游戏名字+链接地址 目标网 ...

  4. python爬取4399小游戏数据_25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 还记得童年的网页小游戏吗?今天带大家爬取4399小游戏网站的数据,游戏名字+链接地址 目标网 ...

  5. Python 【爬虫3】_微信小程序_小游戏数据助手数据爬取

    一.背景介绍 近期产生需求,需要批量重复获取微信小程序数据助手的部分数据,减少重复工作,提高效率. 二.环境准备 主要逻辑:charles抓包,分析,爬取,数据存储 环境配置:pc-win10/移动- ...

  6. 微信小程序,小游戏数据助手数据爬取!还敢随便授权小游戏吗?

    一.背景介绍 近期产生需求,需要批量重复获取微信小程序数据助手的部分数据,减少重复工作,提高效率. 二.环境准备 主要逻辑:charles抓包,分析,爬取,数据存储 环境配置:pc-win10/移动- ...

  7. cocos2d-x小游戏——飞机大战

    上周,我做了一个基于 cocos2d-x 的飞机大战的游戏,因为我刚学cocos2d-x没多久,所以这个飞机大战很多都是看着别人的教程,再加上自己的一些想法,来做的. 下面我想说一说我的思路. 飞机大 ...

  8. cocos2d-x 学习笔记(4)cocos2d-x 小游戏类似打地鼠(含源码)

    源码下载 http://download.csdn.net/detail/u011261250/5719559 这是我自学一星期写的,cocos2d-x版本是2.1.4,是一个简单的类似打地鼠的游戏, ...

  9. cocos2dx小游戏源码(消灭星星)

    才开始了解cocos2dx,为了练手,开发了一下消灭星星这款游戏,游戏资源在网上下载的,游戏也是参考自android平台消灭星星这款游戏.现提供游戏源码,已在android平台测试过,有兴趣的同学可以 ...

最新文章

  1. icmp回复报文_CCNA - Part7:网络层 - ICMP 应该是你最熟悉的协议了
  2. java 线程---成员变量与局部变量
  3. sql 发送邮件网络附件_利用VBA发送附件电子邮件
  4. 设计模式之外观模式(Fasade Pattern)
  5. 网络服务器预防dos***的层次
  6. ELK7.8.1的Docker搭建过程
  7. 利用Kubernetes名称空间来管理内存和CPU资源(三)
  8. 【Clickhouse】Clickhouse Cannot create table with column ‘Int256‘ because experimental bigint types
  9. ES6新特性_const声明常量以及特点---JavaScript_ECMAScript_ES6-ES11新特性工作笔记005
  10. Qt引用Boost问题
  11. C语言和三菱plc通讯,三菱PLC的通讯与编程,附实际案例
  12. redis的hscan命令
  13. 什么是功能性测试?-Alltesting|泽众云测试
  14. Pega How To系列之一:如何在页面上动态显示/隐藏内容 ----by Cheney Wang
  15. 吊炸天核心Java面试问题,一问一答题,一问多答题(建议学习)
  16. 计算机软件技术有哪些,1.1 什么是计算机软件技术
  17. Shiro 授权(权限)
  18. Spring Kafka实战(3)—message listener创建方式探讨
  19. 一车abs线路怎么量_abs传感器怎么测量好坏
  20. GeckoDriver 国内镜像源加速下载

热门文章

  1. 小程序聊天室开发,发送文字,表情,图片,音频,视频,即时通讯,快速部署,可定制开发
  2. 在Xcode中使用Git进行源码版本控制
  3. spark—3(Spark Scheduler)
  4. Java高级特性增强-多线程
  5. Python3 与 C# 并发编程之~ Net篇
  6. spring boot 实战 / 可执行war启动参数详解
  7. JS 中 URL 编码的问题.
  8. 【腾讯bugly干货分享】微信Android热补丁实践演进之路
  9. jquery autocomplete实现solr查询字段自动填充并执行查询
  10. 2-sat问题,输出方案,几种方法(赵爽的论文染色解法+其完全改进版)浅析 / POJ3683...