首页
社区
课程
招聘
王者荣耀是怎么区别IOS端和安卓端
发表于: 2018-3-1 14:37 9254

王者荣耀是怎么区别IOS端和安卓端

2018-3-1 14:37
9254
抓包的时候发现IOS端使用的全部是HTTPS协议而安卓端大部分使用http协议,部分使用https协议。

----------------------这是安卓端抓到的包的http头部------------------------
POST /notice/gather_data/?appid=wx95a3a4d7c627e07d&version=2.14.15a&timestamp=1519885751044&sig=43f8c8f2910ea17f52147973586074d7&encode=2&opua=AndroidSDK_26_HWBKL_8.0.0 HTTP/1.1
Host: msdk.qq.com
Content-Type: application/x-www-form-urlencoded
Content-Encrypt: msdktea
Accept-Encrypt: msdktea
Content-Length: 304
Connection: Keep-Alive
User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
----------------------------------------------------------------------------------------

本来以为是服务器通过判断http提交端的user-agent来判断是什么操作系统并返回相应的服务器列表的。
~~~~~~~~~~~~~~~~ 这是IOS端的链接地址与协议头~~~~~~~~~~~~~~~~~~·
https://ssl.msdk.qq.com/auth/wxfirst_login/?appid=wx95a3a4d7c627e07d&version=2.16.16i&timestamp=1519865148&sig=af089f2f167efe806566cbc06f1a146b&encode=2&algorithm=v1&user-agent=ios_sdk

Host: ssl.msdk.qq.com
Proxy-Connection: close
Content-Encrypt: msdktea
Accept-Encrypt: msdktea
User-Agent: 王者荣耀 1.33.111 rv:0007 (iPhone; iOS 11.2.6; zh_CN)
Content-Length: 600
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

但我将安卓端的包修改成
POST /notice/gather_data/?appid=wx95a3a4d7c627e07d&version=2.16.16i&timestamp=1519885857256&sig=821e97c27149c29e4396069c2821bb2b&encode=2&algorithm=v1&user-agent=ios_sdk HTTP/1.1
Host: msdk.qq.com
Content-Type: application/x-www-form-urlencoded
Content-Encrypt: msdktea
Accept-Encrypt: msdktea
Content-Length: 304
Connection: Keep-Alive
User-Agent: 王者荣耀 1.33.111 rv:0007(iphone;iOS11.2.6;zh_CN)

返回的还是安卓的服务器列表。

~~~~~~~~~~~~~~~~~~~~~~~~~~·
PS:可能我猜错了, msdk.qq.com可能只是登陆的,不和服务器列表相关。



[注意]APP应用上架合规检测服务,协助应用顺利上架!

最后于 2018-3-1 14:38 被我只会易编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 3
活跃值: (373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你用什么抓的包
2018-3-1 18:58
0
雪    币: 69
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
落叶的忧伤 你用什么抓的包
wireshark
2018-3-1 19:43
0
雪    币: 97
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我只会易 wireshark
wireshark能改包?
2018-3-7 09:05
0
雪    币: 223
活跃值: (222)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
既然你都说安卓和ios客户端了,那我编写的安卓客户端我不显示安卓的服务器列表难道显示ios的服务器列表?
2018-3-7 14:47
0
雪    币: 272
活跃值: (209)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1、同一个接口可能只支持同一类的设备。(你对比的2个接口都不是同一个接口的)
2、你要抓同一个接口的不同设备请求了啥参数,一般在参数中有标记从android或者iOS请求的。
3、你这个http请求只是游戏行为日志收集的,游戏数据肯定是走tcp的。
2018-3-19 18:29
0
雪    币: 69
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我是想要用安卓手机登陆IOS服务器。本来想把头几个传输服务器列表的HTTP协议交换一下。但是好像IOS和安卓用的协议都不一样。
2018-7-17 11:09
0
雪    币: 32
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
请求型态是 application/x-www-form-urlencoded
用 POST 的话,你应该先看Post的Body内容吧。
请求的资料可能都里面,但是有可能是加密的。
所以还是需要逆一下发送的参数内容比较安全
2018-7-17 14:36
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
你需要把他的msdktea加密解开来,里面有操作系统和一些别的东西。但是/notice/gather_data 返回的数据里解密出来并没有区服的东西,我感觉区服应该在别的地方获取的
2021-5-21 17:47
0
雪    币: 103
活跃值: (1137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
wx_打工人_888 你需要把他的msdktea加密解开来,里面有操作系统和一些别的东西。但是/notice/gather_data 返回的数据里解密出来并没有区服的东西,我感觉区服应该在别的地方获取的

谢谢

最后于 2021-5-21 18:29 被haoyihebe编辑 ,原因:
2021-5-21 18:13
0
雪    币: 3043
活跃值: (6791)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11

不是通过User-Agent识别???http头里有,url参数也有。正常来说通过UA识别, 但sig这个不通过估计会返回默认的。也可以通过https证书识别。

最后于 2021-5-21 18:31 被微启宇编辑 ,原因:
2021-5-21 18:23
0
游客
登录 | 注册 方可回帖
返回
//