直播弹幕抓取逆向分析流程总结 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 ...
随机推荐
- GPRS模块
一.参考网址 1.AT指令(中文详解版)(二)
- python的库有多少个?python有多少个模块?
这里列举了大概500个左右的库: ! Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主 ...
- 如何搞定Critical Thinking写作?
受中国传统教育模式与国外一流大学之间的差异的影响,在海外留学的学子们常常会在新的学习生活中面临许多难题,Critical Thinking就是其中之一.国内的教育方法常常以灌输式的教育模式为主,忽略了 ...
- 干货|微软远程桌面服务蠕虫漏洞(CVE-2019-1182)分析
2019年8月,微软发布了一套针对远程桌面服务的修复程序,其中包括两个关键的远程执行代码(RCE)漏洞,CVE-2019-1181和CVE-2019-1182.与之前修复的"BlueKeep ...
- python查找数组中出现次数最多的元素
方法1-np.argmax(np.bincount()) 看一个例子 array = [0,1,2,2,3,4,4,4,5,6] print(np.bincount(array)) print(np. ...
- Notepad++配置
笔记来源于视频: http://baidu.iqiyi.com/watch/498601896985630918.html?page=videoMultiNeed notepad++ 有个很重要问题, ...
- JS添加、设置属性以及鼠标移入移出事件
源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- EF Core开发模式之Code First
Code First顾名思义,代码为先.首先编写完相关的实体类及DbContext派生类,然后通过映射关系自动在数据库中完成数据库表的创建. 本例中创建一个班级和学生的管理,主要有班级类MyClass ...
- Bugku 逆向
1.入门逆向 下载解压,在文件夹中打开命令行窗口执行一下:baby.exe 发现输出了一串字符,在将其放到IDA中然后是这样: 发现上面有一串输出和我们命令行窗口中的一样,但是下面为什么又多了一大溜东 ...
- Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)
Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)