转载来源:http://bbs.pediy.com/showthread.php?t=212974

文章主要介绍映客直播软件的认证和登录。

标 题: 【原创】某直播平台协议分析之一
作 者: INightElf
时 间: 2016-09-27,21:00:14
链 接: http://bbs.pediy.com/showthread.php?t=212974

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

本分析过程分为三个功能主题:
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协议,没有什么大的挑战性
我每天只能挤挤牙膏,工地老板又要我去板砖了*转载请注明来自看雪论坛@PEdiy.com

某直播平台协议分析之一相关推荐

  1. 教师直播平台对比分析

    教师直播平台对比分析 首先进行了大量搜索,最后在知乎发现了有一篇回答:课堂直播软件哪个好用啊 , 有推荐的吗? 下面是资料整合: 直播平台 简介 优点 缺点 私密性 腾讯QQ群直播 就是QQ群自带的直 ...

  2. 视频流媒体直播平台运行报Only one usage错误原因排查分析

    熟悉我们的人都知道,我们的视频直播点播平台可以配合RTMP推流平台使用,将手机实时视频流推至视频直播平台进行实时直播,在户外安防监控的应用上有着很大的实用性. 今天我们视频点播直播平台的研发人员按惯例 ...

  3. 全球及中国直播平台市场发展分析及投资战略规划报告2023-2030年

    [出版机构]:鸿晟信合研究院 [内容部分有删减·详细可参鸿晟信合研究院出版完整信息!] 2022年中国直播平台市场销售收入达到了 万元,预计2029年可以达到 万元,2023-2029期间年复合增长率 ...

  4. 直播平台软件开发都使用了什么协议呢?

    直播平台软件开发都使用了什么协议呢? 最近直播比较火,很多人都喜欢看直播,那一个直播系统里面都有哪些组成部分,都使用了什么协议呢? 直播平台软件开发中无论是直播还是点播,其实都是对于视频数据的传输.一 ...

  5. 直播平台源码搭建教程盘点直播技术中的编解码、直播协议、网络传输与简单实现

    直播平台源码搭建教程盘点直播技术中的编解码.直播协议.网络传输与简单实现 Live CheatSheet | 直播技术理论基础与实践概论 音视频直播的基本流程都是采集 → 编码推流 → 网络分发 → ...

  6. 【解决方案】教育培训中心安防监控系统:RTSP协议网络摄像头互联网无插件直播平台EasyNVR助力培训点智能安防搭建

    随着安防行业的不断发展,平安校园建设在各地的推广应用逐渐成为行业趋势.越来越多与学校同步的培训点选择了科学.有效,且节约人力物力的安防系统建设作为保护学生安全的重要手段. 教育培训中心安防监控系统的搭 ...

  7. 在直播平台搭建平台中,购物源码开发公司的直播间搭建该如何选择流媒体直播系统传输协议

    2019年直播行业面临着来势汹汹的短视频挑战,但在垂直细分领域,网络直播平台依旧有着难以企及的位置.如今,直播平台搭建的势头依旧没有减弱,只是更多的人想要将直播平台与更多的行业相结合.对于直播平台搭建 ...

  8. 游戏直播平台竞品分析(必看干货)

    游戏直播平台竞品分析(移动端) 斗鱼.熊猫.虎牙  分析基于iOS客户端版本:斗鱼V2.450. 熊猫V2.2.6.1582.虎牙V4.4.0 市场分析 游戏直播作为直播行业战火的开端可以说毫不为过, ...

  9. 网络直播平台搭建中直播协议和视频推流

    网络直播平台搭建中直播协议和视频推流 直播协议 流媒体分为直播和点播.通常来说点播使用的都是HTTP协议,直播主要用的是RTMP, HLS, HTTP-FLV等.近年来直播协议也有新发展如DASH,但 ...

最新文章

  1. mysql 分支 XtraDB Percona MariaDB 简介
  2. c语言程序设计的反思,C语言程序设计教学反思.doc
  3. 【C 语言】字符串拷贝 ( 优化指针操作 )
  4. 在Linux(Ubuntu)下搭建ASP.NET Core环境并运行 继续跨平台
  5. Hello,PyQt5!
  6. 策略模式示例代码_策略设计模式示例
  7. 回溯应用-- 0-1背包问题
  8. 计算机设备的存放,计算机硬件储存设备与网络储存的发展现状
  9. Linux笔记-scp或ftp或sftp传文件后最后修改时间
  10. 避免服务器成为肉鸡的应对措施
  11. ❤️六万字《Spring框架从入门到精通》(建议收藏)❤️
  12. 操作系统原理常见面试题总结
  13. 【HUSTOJ】1053: 字符图形9-数字正三角
  14. 音乐考试分数计算机,音乐艺考分数怎么算 音乐艺考分数比例
  15. 使用java爬取国家统计局的12位行政区划代码
  16. windows下安装VIM
  17. 【线性DP】跳格子问题 + 光签题(取石子游戏)
  18. Web GIS多种方式发布动态地图服务及显示(2)
  19. 系统克隆 机械硬盘无缝迁移到ssd
  20. 【ybt金牌导航8-3-3】【luogu P4593】分数计算 / 教科书般的亵渎(数学)(拉格朗日插值)

热门文章

  1. WebApi跨域问题解决方案:CPRS
  2. 鬼泣巅峰之战服务器维护,鬼泣-巅峰之战炸服保险计划
  3. PYNQ-Z1自制ip核(以呼吸灯为例)
  4. 基于SSM的在线考试系统
  5. 解决d3dcompiler_42.dll错误找不到等问题
  6. Java打开word文档并执行指定宏命令
  7. 梯形面积php,CSS实现梯形标签页
  8. java 开发多店铺,基于SpringBoot的多店铺商城管理后台
  9. QQ头像获取 --嘿嘿
  10. python多显卡支持_pytorch多GPU并行运算的实现