首页
社区
课程
招聘
[原创]某直播平台协议分析之一
发表于: 2016-9-27 21:00 30521

[原创]某直播平台协议分析之一

2016-9-27 21:00
30521

忙于工作,最近都很少登录看雪论坛。得为论坛做点贡献,写写文章,总是感觉词不达意,讲话都不流畅。最近各种直播平台都很火,移动互联网已经进入了直播时代。什么快手,映客,花椒,奇秀,斗鱼,熊猫都纷纷火起。
作为一个逆向工程师,总想一窥其中的奥秘,看看里面有什么好玩的东西。
好吧。就以某直播平台为目标,假如触犯到你们的知识产权,很抱歉,先说声对不起

本分析过程分为三个功能主题:
1.新浪微博协议登录
2.直播登录之过程
3.进入直播房间观看视频

*****************************华丽分割线*******************************************

新浪微博授权协议

1.微博第三方授权有两种,下面我们分别简述这两种授权方式
第一种是“https://passport.weibo.cn/signin/login?client_id=2459267064&sso_type=1” 做为登录点.界面为


第二种是以奇秀第三方授权
”https://api.weibo.com/oauth2/authorize?redirect_uri=http%3A%2F%2Fpassport.iqiyi.com%2Foauth%2Fcallback.php%3Fisapp%3D1%26from%3D2&client_id=1925825497“ 为登录点,界面为


第一种第三方授权比第二种简单一点,不过操作流程都类似的。
1.第一步获取微博验证码
2.第二步提交登录
3.第三步提交应用授权
4.最后授权成功会返回微博的登录信息,包含了Session,Uid,过期之前之类的信息
例如
access_token=2.00etX75toIakKB7d9cdc4fcf0Ctl4n&remind_in=700101&expires_in=700101&refresh_token=2.00etX65GoIakKBad906c39b16elA3E&uid=57857754335
然后第三方应用就可以凭借这些信息开始登录自身的应用
5.映客根据微博登录返回的信息做如下的判断。当该微博号码为全新的,映客将会注册该微博,获取微博的马甲,头像,并存储于映客服务器中。下次就不需要再注册,直接登录。纵横沙场几十年,都是那几个板斧。

请求微博验证码  https://passport.weibo.cn/captcha/image
返回的验证码信息如下.
retcode  ==20000000 表示响应成功,返回信息没有错误。
验证码ID   pcid为 gz-53c817e99f6e60f3b454ce2c0ce35145c24f
图片的的内容就是以image ,用base64 编码过的。用base64解码以后就是原始的图片

{"retcode":20000000,"msg":"","data":{"pcid":"gz-53c817e99f6e60f3b454ce2c0ce35145c24f","image":"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAMAAAA\/pq9xAAAAV1BMVEX\/\/\/\/+ZWX+srL+eHj+i4v+6+v+xcX+np7+2Nj+qKj+iIj+c3P+gYH+lpb+u7v+ubn+rKz+bm7+aWn+dXX+2tr+fHz+ra3+enr+Z2f+lZX+ycn+bGz+uLiRT+yJAAADH0lEQVRIie1Wa2\/bMAwURUpk1z2abd3Wbv\/\/d453UtykteMGWIF9KIHEiSzx+DieXcq7\/cdW1dqbOZ+eu7jqW2G4SMXVrIREmNVXHIrrcu5SqwTAtDS5ETVZRekqjqssdgVI+i5026UV\/ZBfNosWcRq6qCeKnNkVmaRvo5sofiu9VGEtsozalo7V9Gj0rFjNY9egRLp1xp75VMloscIyhnhTUfxDx5hGSFKwddf5vyxhXDT6xkaF\/4\/KH\/lV4TkbZMRUlmrci0zHcQIoSM\/iMkRBrVCp1hWdt8RzwdBkwPIF3TLwgtWpXE6uj+BbB4JHXvYmjKxSRUCJ+Ck9dYkG73kHa0AJgkTJrNpkXySC1lGxPhq1bei8mXembJqJpRt0qaXHDpSmrH5uDO4lRL2fVQJ2brGLICHHiraW3UGtTNEHUrljOhrjTYJVJTRhTW7zsM8S+A7TkH7r2WAy6zNJjLjqZBlajkAzBcOOhkJmYAryi4PMR0puG1mV4Tg733mCyTkPVgZRuU8rB2bw705+jASY5w4IO+9lDJw6quRj3p1gdXY6LzoDyFRx6OdIANVsconGwilhaDhvOgcexVjYOxRUYtGgijuHXxiAJLCWnenHEMdochtzObwoWWmKMH3gmtxhishW7HqQR4pPbfsgHDKZ3ckZQZPTRwMK2cvKB1E4nETJXY\/ykFQ+Ct0eyrHVmU\/+8EHXwX0exmiYD+bmNKbWRMMu+U0PberlDspg\/3w4xlGJUwjGUXSMj5OmB0TTOZ2t3EOODMCvQhkgpRtEaKF9TJmlmNhA+foNOTcKxA01yHwHhcvo7an2mMZ4WM5jqGV+xsBkLlN0U1IPypA4tnULZa62enYbpfflcTHUDR+iuHyHMjr0RP+QbXNs6zrI0+p5FCzG0xLdgOOeHccbDURIvTcSuUtMFNPyEubU8fMoTlFtCFcZTD2TDxv1GigEOffzooTPMJ\/+kFx8VSnRz58bdXnxmPiy6eVkbe1NJB\/AdUP\/Rr0IHDUuellBOfOkfGSsWo7\/FJ01PxuH1i02JTaO8vmm1q58Y323d\/u39hco8hAvf53tbQAAAABJRU5ErkJggg=="}}

提交微博登录
https://passport.weibo.cn/sso/login,包含了用户名称,用户密码,验证码还有其它的登录信息
username=&password=&pincode=&pcid=
微博服务器验证登录信息,当登录信息正确的时候返回 ticket 信息
{"retcode":20000000,"msg":"","data":{"ticket":","toauth":1,"uid":""}}
根据返回的ticket信息提交第三方应用授权,授权成功以后映客访问该微博,可以获取微博的马甲,性别,年龄还有头像之类的信息。
授权成功,则返回sessionid,uid。
至此,微博登录授权完成。从此就可以把微博扔在一边了。抛弃你。映客凭sessionid和Uid就可以识别该用户

其实基本上所有的第三方授权平台都是这个流程的。已经标准化,流程化了。
微博授权登录只是开胃小菜。下面进入某直播平台的登录流程

/*************************华丽分割线******************************************/
直播平台登录流程之分析
自从有反汇编工具出现以来,大部分应用的秘密便暴露逆向人员眼皮底下。
其实随便抓一个直播平台分析,里面的通讯基本都是类似的,感觉都是同一批工程师开发出来的。或者是你逆向我,我抄袭你。
稍微修改一下字段,跟之前的换肤游戏有得一比。换汤不换药的。这类运用比拼的其实就是运营能力,和话题性。

映客开始登录流程,先提交
https://service.ingkee.com/user/account/logins?devi=&cv=&ua=&proto=7&lc=0000000000000032&idfv=&imsi=&imei=&cc=&osversion=0&idfa=FA&uid=0&sid=&conn=Wifi&
POST请求,该请求字符串的Url地址如上,并附带了Json 数据

access_token是微博返回的token值,expire_time是微博返回的过期时间,weixin_openid
是微博返回的Uid值,比较有意思的是secret 字段,该字段是通过RSA加密后的字符串转为为二进制字符串表示。原始的内容是  "
Uid#expire_time#版本号" 然后通过保存在app 应用中的RSA公钥进行加密,把加密后的结果转换为二进制字符串。官方就根据这个值判断是否登录合法,或者非法登录
{"access_token":"","expire_time":“","openid":"","platform":"weibo",
"secret":"ab5224a2d1dab7aa529c5dc7d50630858599b19690689432e433bb29f148832a665972f5858ae7fedf7945ad4bcec654020a0158aafb9eeee
06442b7bd70ba2ce1068a189be6f3f10c72876e70624ceb5e2cc89628d21353184874bc7cba16047bf40fb96b050235ca780a0b3217895039c067080f10413238063cf9
bc27f6057decd5e1c8161e11cfb31c767a2e45b438c592ee8e5c89f8edda9be0a27daa161545a7bddd4db",
"weixin_openid":""}

当登录的信息正确合法,官方将返回属于平台的用户ID,和Session值,客户端根据first_login 字段判断当前的微博号码是否为全新的用户。当为全新的用户时,则通过微博API 获取马甲,头像等信息,根据微博的信息,更新用户信息。

该平台的API都是简单明了,比较容易分析,设置了一些小伎俩都很容易被发现。另外一个平台花椒直播的登录过程就稍微复杂一点。不过都基本是类似的。

书接上回
每天挤点牙膏,分析分析。哈哈

登录成功以后,接下来就是获取映客的Token值,该Token值是用来操作更新,关注,修改马甲的凭证,请求的Https 如下
https://service.ingkee.com/user/account/token 附带的Json 数据
{"sec":"","time":}

当请求合法正确时返回{"v2_success": true, "token": "11133332323233233223233"}
这些返回信息我都删除了好多,真正都数据并不是这些,以防被无良都人滥用,不会写得很详细的。
token 表面的意思时令牌,其实真正的作用是某加密算法的加密公钥。
现在已经有了一把万能钥匙了,可以凭此钥匙打开无数的珍宝,所有的功能都可以凭这个打开。
什么更新用户信息,都只是Uri地址不一样而已。没有什么变化。
找些时间给大家说说花椒的内部东西,小伎俩好多。一不下就被骗了。需要多花点时间
感觉分析映客只是在分析Http协议,没有什么大的挑战性
我每天只能挤挤牙膏,工地老板又要我去板砖了


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 3
支持
分享
最新回复 (23)
雪    币: 27
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
做等更新
2016-9-27 21:24
0
雪    币: 202
活跃值: (292)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
期待后续
2016-9-28 10:20
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看博主对这个解析的很拿手,小弟也在研究,有些问题,想要咨询一下,能否给个联系方式,探讨一下?
2016-9-28 16:50
0
雪    币: 1604
活跃值: (640)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
6
支持此类披露大型站点web应用工作机制的好帖!
2016-9-29 22:31
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
有YY的协议分析么
2016-10-4 22:45
0
雪    币: 141
活跃值: (172)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
nice
2016-11-9 10:16
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
留个联系方式呀
2016-11-9 10:35
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
能留下一些逆向分析的方法论就更棒了!!
2017-1-3 16:12
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
期待看到下文有关花椒的
2017-1-10 17:47
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
坐等博主关于花椒的分享
2017-2-16 11:56
0
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
13
你家曾曾呢?
2017-2-16 12:49
0
雪    币: 144
活跃值: (136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不错,坐等更新。
2017-2-16 22:46
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
楼主想实现商用请联系我2996469479
2017-7-8 13:30
0
雪    币: 184
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
6逼
2017-9-22 09:29
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
大哥,我有个源码能帮我看看吗》?
2017-9-30 01:42
0
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
看海 大哥,我有个源码能帮我看看吗》?
可以
2019-3-16 22:35
0
雪    币: 216
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
有联系方式麽
2019-6-20 09:33
0
雪    币: 1101
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
不错,坐等更新
2019-7-3 10:31
0
雪    币: 299
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
大佬您您不能加我QQ:503625363详聊一下可以吗,或者我加您QQ也行,因为我无法在站内发送短消息
2019-8-2 18:38
0
雪    币: 296
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
给我定制个软件加下我qq616778047
2019-8-26 17:49
0
游客
登录 | 注册 方可回帖
返回
//