小兵别嚣张,签名算法分析
点击上方↑↑↑蓝字[协议分析与还原]关注我们
“分析unity3d游戏小兵别嚣张的签名算法。”
不久前,写了个unity3d的引子,介绍了使用工具从unity3d游戏中提取出各种资源和算法:
unity3d游戏IL2CPP相关算法简单分析
不过内容很少,今天介绍一款基于unity3d的小游戏里面用到的签名算法的分析。
小兵别嚣张,这是一款竖屏塔防游戏,当然,不是3d的,虽然它是基于unity3d引擎开发的:
看上图,我玩到了好多级呢,蛮沉迷的。里面的操作蛮多的,都是与服务器的交互,不过,它都是使用HTTP进行数据传输的。
查了下发行商Ohayoo,旗下发行了不少这类小游戏,不过,开发公司不同,这款小兵别嚣张是tapenjoy开发的。
下面从数据的角度来对这个游戏进行一定的了解。
—
01
流量分析
作为一个流水线化的产品,小兵别嚣张与服务器的数据交互,都是通过API进行的,传输协议HTTP,域名是yxgs-tf-yx.tapenjoy.com,不同功能用不同API:
这里我们拿http://yxgs-tf-yx.tapenjoy.com/api/stat/batch这个API来分析。这个POST内的数据如下:
数据很简单,还有些功能没实现,这些数据项里,作为数据校验的签名项为sig字段,它对其它字段进行校验,其它字段变化则它也要变化。
仔细看,它是32字节字符串,大概率是个MD5,按正常分析过程,当然要到libil2cpp.so中去找算法了,如果能够使用Il2CppDumper这个工具自然是好,如果不能,那么,我们可以硬调这个so,例如寻找MD5算法关键字,来确定调用点,然后hook,找到关键数据,不过,在找算法这方面,每个人都应该充分利用自己的优势,尽量使用自己熟悉的技能来搞,会省事很多。
最终,得到签名算法是加盐的MD5,如下:
sig=MD5("7d499b2f0a87007bf21b05xxxxxxxxxxxxxxxxxxxxxxxxxx"+ data +iLevel+ iNewTime+ iRegTime+ timestamp +uid+ vAndroidID+ vDID +vGAID+ vIDFA+ vMAC+ vOS +vOpenUDID)
这里面,盐里面的一部分数据被我用x屏蔽了,毕竟公开了不太好,大家相互理解,毕竟,这个不是害人的棋牌呀,对不对。
02
—
匆匆结束
到这里差不多啦,毕竟这里只准备分析它的签名算法。有兴趣的,大家自行分析,一定会有不少收获,希望这里能起到抛砖引玉的作用。
如果你开心了,记得多多分享。
别忘点“在看”、“赞”和“分享”
新的规则,及时收推文要先给公号星标
别忘了星标一下,不然就错过了
长按进行关注,时刻进行交流。
相关文章:

NOIP模拟题——B
【题目描述】我们要从n种食物选m个出来,安排一个顺序吃掉它(们),每种食物有个美味值ai,然后我们有k个规则,每个规则有 xi, yi 和 ci三个数,如果吃完第xi种食物接下来马上吃第yi种食物࿰…

Maven使用常用命令
> mvn clean删除target文件夹> mvn clean test编译测试代码,默认被放到target/test-classes文件夹下面> mvn clean compile编译主代码,并放到target/classes文件夹下> mvn clean package打包代码,我们可以看到target文件下生成了…
04- CoreData轻量级版本的迁移
CoreData版本的迁移 一 轻量级的数据迁移 例如添加新的实体,新的实体属性。 轻量级版本迁移方案非常简单,大多数迁移工作都是由系统完成的,只需要告诉系统迁移方式即可。在持久化存储协调器(PSC)初始化对应的持久化存储(NSPersistentStore…

通da信TCP长连接数据算法分析
点击上方↑↑↑蓝字[协议分析与还原]关注我们“ 分析通da信TCP长连接内部分数据的算法。”作为一款老牌的炒股软件,通da信里面的数据是相当的丰富,免费的也很丰富,准确性也很好,例如,这种股票之间关联的信息。通da信一…

产品经理怎么样用图表传达数据信息(多图)
上文有点仓促了,结尾没有写好。补上: 对劣质成本分析的时候应该注意: 1、在进行劣质成本分析的时候,要注意区分成本和必要的浪费。要注意一个关系,对必要浪费的控制会导致其他成本的上升。例如前文说到四小时送一次货&…

'This NSPersistentStoreCoordinator has no persistent stores 报错
可能是你改变coredata的属性项之后再运行的话在模拟器中会出现这个问题。找上面说的,找到mac下的模拟器中的程序路径,然后删掉其sqlite文件再运行就好了!!!

tcp断开连接,4次握手,为什么wireshark 只能抓到3个包?
用wireshark 抓包,看看tcp 断开连接的过程. 以前书上说tcp断开连接,4次握手,可我为什么wireshark 只能抓到3个包? 百度一下,别人也有类似的疑问。 【求助】书上和网上的资料说,TCP拆除连接需要四次握手。但…

如何在python开发的GUI界面程序中恰当地使用PyExecJS
点击上方↑↑↑蓝字[协议分析与还原]关注我们“解决一闪而过的黑框的小技巧。”在使用python开发过程中,不可避免地,会开发带界面的应用,也会经常使用js来完成一些功能,比如,我使用python开发个了一个小应用࿱…

switch和case的理解
下面是复习java基础知识的时候,发现的一些点,总结下,备忘 int a345;switch (a) {case 23:System.out.println("23"); // break;case 345://条件符合,下面的case条件不会在判断,直接执行;System…

05-自己创建mapmodel自定义迁移方式
自动创建Mapping 如果模型的改变很大或者不支持轻量级数据迁移的条件,则我们需要进行自定义迁移。 使用映射模型 适用于更加复杂的数据的迁移 NSMappingModel 类似于数据模型 NSEntityMapping 告知迁移过程如何在目标数据存储中处理源实体的映射。 映射类型决…

Linux内核之内存管理(4)--缺页处理程序
本文主要解说缺页处理程序,凝视足够具体,不再解释。 //以下函数将一页内存页面映射到指定线性地址处,它返回页面的物理地址 //把一物理内存页面映射到线性地址空间指定处或者说把线性地址空间指定地址address处的页面映射到主内存区页面page上…

WebSocket协议分析
点击上方↑↑↑蓝字[协议分析与还原]关注我们“ 解析websocket数据格式。”好久不见,一晃一年又过去了,祝大家新年好运。今天,给大家分析一个常见的协议——WebSocket,这是一个标准协议,虽然没有HTTP历史悠久ÿ…

《postfix邮件服务下mailq、postmap、postqueue 、 postsuper等用法》
1、Mailq 功能说明:显示待寄邮件的清单。 语 法:mailq [-q] 补充说明:mailq可列出待寄邮件的清单,包括邮件ID,邮件大小,邮件保存时间,寄信人,收信人,以及邮件无法寄出…

[deviceone开发]-一个很炫的手势动画示例
一、简介 这是iOS下的效果,android下完全一致。通过do_GestureView组件和do_Animation组件,deviceone能很容易实现复杂的跨平台纯原生动画效果,这个示例就是通过手势控制图片上下动画滑动实现开合效果,还支持声音效果。 二、效果图 三、相关下…
iOS lldb调试
LLDB 初始 LLDB 是一个有着 REPL 的特性和 C ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的…

万物之中,希望至美
一觉醒来,虎年就这么来了。感谢各位朋友过去的一年与我同在。在新的一年到来之际,我首先做个检讨,过去的一年,我们这个公众号,更新不够频繁,属于三天打鱼两天晒网型公众号,没有为大家带来足够丰…

[转]VS2015编译的程序在其他机器上缺少msvcp120.dll
http://www.lai18.com/content/1159618.html 1、 今天分享一个自己在开发过程中遇到的困难。用VS2015开发了一个windows客户端(win32项目),在自己的机器上运行很流畅。当你得意的把releas版本进行打包,并进行发布后,问…

Discuz!的cookie机制
最近在做Discuz!的插件,需要用到cookie,一直觉得奇怪的一个问题,Discuz!大量使用了cookie,但是我在编写插件的时候如果不加入session_start函数cookie就无法使用,按理说Discuz!使用了这么多cookie它的核心应该有调用se…

iOS infoplist 权限设置
<dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> <key>NSBluetoothPeripheralUsageDescription</key> <string>需要使用您的蓝牙</string> <key>NSCalendarsUsageDes…

python使用socket实现协议TCP长连接框架
点击上方↑↑↑蓝字[协议分析与还原]关注我们“ 使用python实现协议中常见的TCP长连接框架。”分析多了协议就会发现,很多的应用,特别是游戏类和IM类应用,它们的协议会使用长连接的方式,来保持客户端与服务器的联系,这…

哈夫曼编码与解码
这是我的第一篇博客,希望大神们批评指正。 首先介绍以下什么是哈夫曼树(来自百度百科) 哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。 在计算机信息处理中,“哈夫曼编码”是一种一…

012-python基础-数据运算
1、算数运算: 2、比较运算 3、赋值运算 4、逻辑运算 5、成员运算: 6、身份运算: 7、位运算: 8、运算符优先级: 转载于:https://www.cnblogs.com/chhphjcpy/p/6064572.html

优化XCode的编译速度
1.将Debug Information Format改为DWARF 在工程对应Target的Build Settings中,找到Debug Information Format这一项,将Debug时的DWARF with dSYM file改为DWARF。 这一项设置的是是否将调试信息加入到可执行文件中,改为DWARF后,如…

给windows装个Mac黑苹果虚拟机
点击上方↑↑↑蓝字[协议分析与还原]关注我们“ windows下安装使用苹果Mac虚拟机。”平常的生活工作中,我大部分时候使用Windows,偶尔用用Mac。实在是用不惯Mac,但有的时候,有些工作还是需要在Mac上搞,不得不用&#x…

Ajax基础讲解 1
随着web的不断发展,Ajax的运用越来越普及,但是对很多同学来说Ajax稍微有些难懂,今天呢就简单给大家讲解一下Ajax的一些基础入门的知识,希望可以帮到刚学习Ajax的同学。 第一步:首先就是服务器的搭建,关于服…

在虚拟机linux环境下编译windows版adb fastboot
原文出自:http://blog.chinaunix.net/uid-20546441-id-1746200.html我根据虚拟机编译遇到的问题进行一些添加【前提条件】Linux Android源码完整虚拟机磁盘空间100G左右(60G用来存放代码和编译后的文件)swap 30G左右,若太小会导致…

PC端微信小程序wxapkg解密
sh点击上方↑↑↑蓝字[协议分析与还原]关注我们“ 解密PC端wxapkg文件。”用过微信pc版的应该都知道,PC上也可以使用微信小程序。这个小程序用起来和手机端差不多,不过,在分析时,确是有差别的——PC上的wxapkg文件是加密的。无论如…

cron 定时器简单入门
cron:计划任务,是任务在约定的时间执行已经计划好的工作,根据配置文件约定的时间来执行特定的任务。 编写测试类继承 IJob ,实现Execute 此方法就是用于定时的任务 配置定时时间: 先创建windows服务,服务创建详情 Inst…

PHP5.5.13 + Apache2.4.7安装配置流程详解
---恢复内容开始--- 自学PHP的这段时间里,真是倍感辛酸,相信广大的菜鸟们应该很我感同身受吧,在查阅了网上和众多数资料后,总结出来想当比较全面的安装方法,拿出来与广大的编程爱好者一起分享哈。 首先到官网上下载相关…

cocos2dx小游戏数据签名算法破解
点击上方↑↑↑蓝字[协议分析与还原]关注我们“ 快速破解小游戏常见的数据签名算法。”最近在分析各种小游戏的协议,本文以《我不是无双》这款小游戏为样例介绍这类小游戏的分析方法。01—抓包在分析开始,首先明确分析的目的是学习这款游戏的网络协议算法…