|
本帖最后由 牛bi的阿三 于 2020-10-18 21:50 编辑
某QP协议-分析过程-----还没写完
开始分析:
1.抓包
模拟器安装后,使用FIDDLER抓包,会出现如下图
而抓到的包却是这样,如下图
这里明显可以看到,他的请求目标域名居然是我们本地,这不科学啊!
响应结果如下图
我的想法是,他在本地开了一个服务端口,自己请求自己,然后由接收的服务端再去请求,但是返回的结果让我放弃了这个想法!
当我们关掉代理,再次打开。
这里我们可以发现,应该是代理的问题
这样他就可以正常请求成功了,但是我们怎么抓包呢?那我们就尝试抓TCP的包看下吧!使用二七代理来运行模拟器,然后用抓TCP的软件来抓二七代理即可!我这里是用WPE来抓的!
当然如果检测模拟器的话,那我们就使用真机,然后用小米随身WIFI开WIFI热点,用真机连接WIFI,在使用抓TCP的软件来抓小米WIFI的进程也是可以的!
这里我们使用第一种方式:
将夜神模拟器添加到代理软件后双击打开,然后随便运行一个APP,已加速流量有在增加的话说明加速成功了,如下图!
现在开始抓包,用WPE加载二七代理,如下图
加载完成后,不要立刻开始抓包,因为会出现很多没用或者其他APP后台运行产生的包,会干扰你的分析!
打开我们要分析的APP,然后抓个注册包!先到APP注册的位置填好手机号,
然后WPE点击三角形开始抓包,立刻在APP里点获取验证码,然后出现结果后,wpe立刻点击停止抓包!抓到的包如下图
找发送的,然后看到和我们用FIDDLER抓到的包发送内容一致的包。
紧跟后面的返回数据包如下
使用工具解析看一下发送的
使用工具解析看一下返回的
返回的并看不懂,没有返回什么数据,那我们接着往下找,看是不是还有返回的数据包......果然有,如下
解析如下
这里我们看到是有乱码的,面前都是明文,我们到数据段的十六进制看一下
0D0A表示换行,
0D 0A 0D 0A 35 30 0D 0A 1F 8B 08 00 00 00 00 00 00 03 AB 56 4A CE 4F 49 55 B2 32 33 30 30 B0 34 30 30 32 30 D5 51 2A 4A 2D 2E CD 29 51 B2 8A 8E D5 51 CA 2D 4E 57 B2 52 8A 29 35 35 4E 31 8C 29 05 AA 00 92 A6 96 C6 40 D2 22 C5 C8 54 A9 16 00 74 00 5F AA 40 00 00 00 0D 0A 30 0D 0A 0D 0A
那么去掉所有换行就是:
35 30 0D 0A 1F 8B 08 00 00 00 00 00 00 03 AB 56 4A CE 4F 49 55 B2 32 33 30 30 B0 34 30 30 32 30 D5 51 2A 4A 2D 2E CD 29 51 B2 8A 8E D5 51 CA 2D 4E 57 B2 52 8A 29 35 35 4E 31 8C 29 05 AA 00 92 A6 96 C6 40 D2 22 C5 C8 54 A9 16 00 74 00 5F AA 40 00 00 00
那么3530转换的明文意思就是50,右边可以看到,那么就剩下:
1F 8B 08 00 00 00 00 00 00 03 AB 56 4A CE 4F 49 55 B2 32 33 30 30 B0 34 30 30 32 30 D5 51 2A 4A 2D 2E CD 29 51 B2 8A 8E D5 51 CA 2D 4E 57 B2 52 8A 29 35 35 4E 31 8C 29 05 AA 00 92 A6 96 C6 40 D2 22 C5 C8 54 A9 16 00 74 00 5F AA 40 00 00 00
这段十六进制串的字节长度刚好是50,说明前面的50就是表示这段数据的长度就是50个字节。
那么有经验的都知道1F8B开头,后面3个字节 000000就是GZIP的压缩格式,况且协议头里标注了是GZIP的压缩格式,Content-Encoding: gzip,那么我们使用GZIP来解压看下,如下
那么看到是这样的,在使用USC2解压看下
OK,这里看到的就是明文了,但是发送失败了,无所谓,可能是检测模拟器或者手机号的问题,我们这里主要分析协议!
现在尝试模拟发送一次看下能不能发送成功,如下
发送后返回了一个字节流就断开了,我们看WPE抓的包上面看到同样发送了这个数据,但是WPE上面并没有断开,说明这里是有问题的。很有可能是没有握手的问题(tcp一般都需要先握手,再发送数据),那么我们网上找,发送验证码之前干了什么。
上面是发包,下面是接收的
那么我们在用工具来测试,先握手,在发送数据。
发送也是同样的返回,那么应该前面还有包,可是我们抓到就这些,那么可能是APP打开后就进行了握手,那我们关掉APP从打开就开始抓包看下。
在分析的过程中,我看到了这个,突然想到了一个问题,这是我的二七代理的账号+密码,为什么会发送这个呢...原来我们使用了二七代理,现在请求的IP是代理服务器并不是游戏的服务器IP,所以我们刚才发送过去返回那个字节流,因为我们相当于直接给二七代理服务器发送了请求,却没有认证,所以刚才TCP测试返回的应该是没有认证或者没有登录的意思。那么现在为了找到真实的IP,就用我们之前说的第二种方法,使用真机加小米随身WIFI来抓
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|