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

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

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

本分析过程分为三个功能主题:
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协议,没有什么大的挑战性
我每天只能挤挤牙膏,工地老板又要我去板砖了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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