直播弹幕抓取逆向分析流程总结 websocket,flash
前端无秘密
直播的逆向抓取说到底是前端的调试和逆向技术,加上部分的dpa(深入包分析,个人能力尚作不到深入,只能作简单分析)难度较低
目前互联网直播弹幕主要是两种技术实现。
1websocket消息通信,js拿到消息再处理到dom中,逆向验证流程,和服务端建立连接后即可,逆向难度较低,消息分明文和加密两种情况,前端无秘密,加密也能找到解密的js代码。如此实现可直接用nodejs,js相关代码通用,一个比较大的坑是服务端websocket版本不一样,所需依赖socker.io包的版本也不一样,要通过各种蛛丝马迹来最终确定版本。
2flash,逆向难度较高,目前纯nodejs后台项目作不到(不支持加载flash文件)
flash支持加载swf文件浏览器功能,swf文件类似为js的依赖包,一个模块,swf实现功能,js引用swf文件,调用api来作上层,js和swf的关系,类似c和汇编编译的包,scala和java编译的jar包的关系。
swf包是可以反编译看源码的
示例工具如 https://www.free-decompiler.com/flash/download/
这又有两种情况
1swf只负责消息通信功能(和websocket的定位类似)内部实现消息的发送和接收,对外公开api,js通过这层api拿数据,js再作数据展示。这种相对简单,在浏览器内部(或其他支持flash的环境),注入js代码,加载swf模块,注册回调即可接收弹幕数据。
2swf不和js交互,完全封闭,flash本身就负责视频流的处理播放,部分网站,弹幕的处理,完全不经过dom,直接由swf处理放到视频流中。
1和2的区别就在于,swf是否显示公开了弹幕消息的处理api,提供了好说,不提供的话考虑成本和可行性,基本毫无办法。
可操作的思路有两个,说白了是一个(因为都要深入分析swf的源码)
个人也没有尝试过,不保证可行,只是思路
1或许swf实现了,只是没有显示的通过js调用,反编译 swf 文件,找出这个api,这种几率不大,纯碰运气。
2抽取处理逻辑,修改代码,公开消息api(或通过其他方式暴露消息,打日志?),编译替换原swf文件。
注入新swf应该不难,作移动端调试时用过fiddler,mac上抓包的charles应该都有现成方案,实在不行,还有老办法,nginx主路流量劫持,之前只劫过 http 的,https 的倒是没试过,可能需要证书按中间人攻击的思路去作。
swf以actionscript编写,个人并没有相关开发和调试经验,前端逆向依赖的前端调试技术,只能停在js层面,对swf完全无力可施,目前个人只能通过查看swf源码,对照js代码作分析。
而actionscript和flash 即将终止支持,非必要,实在不愿在其上浪费时间。
如此操作成本很高 基本思路是
1 定制 actionscript 文件,公开一个外部api,暴露需要的数据,编译为 swf 文件
2 注入swf文件
3 js 访问 swf 暴露出的 api,获取需要数据
直播弹幕还是用flash更安全,这倒不全是技术上的优点,市场方面,一项技术从业人员越少,逆向成本越高
非专业逆向人员,技术有限,认知只限于此,若有误欢迎指出
直播弹幕抓取逆向分析流程总结 websocket,flash的更多相关文章
- [转载]Fiddler为所欲为第四篇 直播源抓取与接口分析 [四]
今天的教程,主要是教大家如何进行“封包逆向”,关键词跳转,接口分析.(怎么样,是不是感觉和OD很像~~~)今天的教程我们以[麻花影视]为例,当然,其他APP的逻辑也是一样,通用的哦~ 首先需要做好准备 ...
- PHP抓取及分析网页的方法详解
本文实例讲述了PHP抓取及分析网页的方法.分享给大家供大家参考,具体如下: 抓取和分析一个文件是非常简单的事.这个教程将通过一个例子带领你一步一步地去实现它.让我们开始吧! 首先,我首必须决定我们将抓 ...
- SNMP报文抓取与分析(二)
SNMP报文抓取与分析(二) SNMP报文抓取与分析(二) 1.SNMP报文表示简介 基本编码规则BER 标识域Tag表示 长度域length表示 2.SNMP报文详细分析(以一个get-respon ...
- SNMP报文抓取与分析(一)
SNMP报文抓取与分析(一) 1.抓取SNMP报文 SNMP报文的形式大致如下图所示 我们这里使用netcat这个工具来抓取snmp的PDU(协议数据单元).(因为我们并不需要前面的IP和UDP首部) ...
- C#抓取和分析网页的类
抓取和分析网页的类. 主要功能有: Ontology 1.提取网页的纯文本,去所有html标签和javascript代码 2.提取网页的链接,包括href和frame及iframe 3.提取网页的ti ...
- NetCloud——一个网易云音乐评论抓取和分析的Python库
在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...
- Scrapy实战篇(八)之爬取教育部高校名单抓取和分析
本节我们以网址https://daxue.eol.cn/mingdan.shtml为初始链接,爬取教育部公布的正规高校名单. 思路: 1.首先以上面的地址开始链接,抓取到下面省份对应的链接. 2.在解 ...
- 吴裕雄--天生自然python学习笔记:WEB数据抓取与分析
Web 数据抓取技术具有非常巨大的应用需求及价值, 用 Python 在网页上收集数据,不仅抓取数据的操作简单, 而且其数据分析功能也十分强大. 通过 Python 的时lib 组件中的 urlpar ...
- Android测试日志文件抓取与分析
1.log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有:adb shel ...
随机推荐
- 网络基础:OSI 七层模型、TCP/IP 四层模型
1.Internet历史 1. 1968年由美国ARPA机构提出"资源共享计算机网络”,让ARPA的计算机互联起来,叫做阿帕网;2. 1974年,第一个TCP协议详细说明发布了.3. 一个 ...
- MVC学生管理系统-阶段IV(修改学生信息)
项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架, 学生列表显示 请看阶段一文章 添加学生信息 ...
- LA_4730 Kingdom 并查集+树状数组
给定N个点的坐标,代表N各城市,有M种操作,共分两种,一种是连线,把两个点连起来(一旦构成连通图,这个连通图即为一个州),还有种询问操作,为y=c,(c为小数部分恒为.5的实数),问y=c这条线经过了 ...
- localStorage中使用json
function setLocalJson(name, json) { json = JSON.stringify(json); localStorage.setItem(name, json)} f ...
- Nginx系列p4:进程结构
Nginx 有两种进程结构:单进程结构,多进程结构.本篇文章我们主要说多进程结构. 问:那为什么 Nginx 采用多进程结构,而不是多线程结构呢? 答:这是因为 Nginx 最核心的目的就是要保证高可 ...
- arp攻击 (可查看同一局域网他人手机照片)
国家法律一定要遵守,知识要用在对的地方. 本贴只为了和大家交流学习,请勿用在其他地方,损害任何人的利益. 今天我,来说一下arp攻击的原理和教程 原理什么的还是自行百度好,因为专业的说明是严谨而又经得 ...
- ES6 之 对象的扩展
1.Object.is() 判断俩个值是否相等 +0 不等于 -0 NaN 等于自身 console.log(Object.is('foo','foo')); // true console.log( ...
- winform集成cefSharp,与页面进行交互
/// <summary> /// 为了使网页能够与winForm交互 将 com 的可访问性设置为 true /// </summary> [System.Runtime.I ...
- WGAN将数值限制在一定范围内 Python代码 tf.clip_by_value(p, -0.01, 0.01))
tf.clip_by_value(p, min, max)) 运用的是交叉熵而不是二次代价函数. 功能:可以将一个张量中的数值限制在(min,max)内.(可以避免一些运算错误:可以保证在进行lo ...
- Codeforces 1295C - Obtain The String
题目大意: 给定两个字符串s和t,你有一个空字符串z 每次可以取s的任意一个子序列加到z后面 问至少要取多少次才能让z等价于t 解题思路: vector存s中26个字母的位置 然后t字符串从前往后一个 ...