前端无秘密

直播的逆向抓取说到底是前端的调试和逆向技术,加上部分的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的更多相关文章

  1. [转载]Fiddler为所欲为第四篇 直播源抓取与接口分析 [四]

    今天的教程,主要是教大家如何进行“封包逆向”,关键词跳转,接口分析.(怎么样,是不是感觉和OD很像~~~)今天的教程我们以[麻花影视]为例,当然,其他APP的逻辑也是一样,通用的哦~ 首先需要做好准备 ...

  2. PHP抓取及分析网页的方法详解

    本文实例讲述了PHP抓取及分析网页的方法.分享给大家供大家参考,具体如下: 抓取和分析一个文件是非常简单的事.这个教程将通过一个例子带领你一步一步地去实现它.让我们开始吧! 首先,我首必须决定我们将抓 ...

  3. SNMP报文抓取与分析(二)

    SNMP报文抓取与分析(二) SNMP报文抓取与分析(二) 1.SNMP报文表示简介 基本编码规则BER 标识域Tag表示 长度域length表示 2.SNMP报文详细分析(以一个get-respon ...

  4. SNMP报文抓取与分析(一)

    SNMP报文抓取与分析(一) 1.抓取SNMP报文 SNMP报文的形式大致如下图所示 我们这里使用netcat这个工具来抓取snmp的PDU(协议数据单元).(因为我们并不需要前面的IP和UDP首部) ...

  5. C#抓取和分析网页的类

    抓取和分析网页的类. 主要功能有: Ontology 1.提取网页的纯文本,去所有html标签和javascript代码 2.提取网页的链接,包括href和frame及iframe 3.提取网页的ti ...

  6. NetCloud——一个网易云音乐评论抓取和分析的Python库

    在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...

  7. Scrapy实战篇(八)之爬取教育部高校名单抓取和分析

    本节我们以网址https://daxue.eol.cn/mingdan.shtml为初始链接,爬取教育部公布的正规高校名单. 思路: 1.首先以上面的地址开始链接,抓取到下面省份对应的链接. 2.在解 ...

  8. 吴裕雄--天生自然python学习笔记:WEB数据抓取与分析

    Web 数据抓取技术具有非常巨大的应用需求及价值, 用 Python 在网页上收集数据,不仅抓取数据的操作简单, 而且其数据分析功能也十分强大. 通过 Python 的时lib 组件中的 urlpar ...

  9. Android测试日志文件抓取与分析

    1.log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有:adb shel ...

随机推荐

  1. 19 01 18 dango 模型

    定义属性 Django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django会为表创建自动增长的主键列,每个模型只能 ...

  2. 【分类问题中模型的性能度量(一)】错误率、精度、查准率、查全率、F1详细讲解

    文章目录 1.错误率与精度 2.查准率.查全率与F1 2.1 查准率.查全率 2.2 P-R曲线(P.R到F1的思维过渡) 2.3 F1度量 2.4 扩展 性能度量是用来衡量模型泛化能力的评价标准,错 ...

  3. Swift—UITextField的基本用法

    https://www.jianshu.com/p/63bdeca39ddf 1.文本输入框的创建##### let textField = UITextField(frame: CGRect(x:1 ...

  4. UVA 10003 区间DP

    这个题目蛮有新意的,一度导致我没看透他是区间DP 给一个0-L长度的木板,然后给N个数,表示0-L之间的某个刻度,最后要用刀把每个刻度都切一下 使其断开,然后每次分裂的cost是分裂前的木板的长度.求 ...

  5. UVALive 4043 转化最佳完美匹配

    首先黑点和白点是组成一个二分图这毫无疑问 关键是题目中要求的所有黑白配的线不能交叉...一开始我也没想到这个怎么转化为二分图里面的算法. 后来看书才知道,如果两两交叉,则可以把两根线当四边形的对角线, ...

  6. vue组件化应用构建

    组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许我们使用小型.独立和通常可复用的组件构建大型应用.仔细想想,几乎任意类型的应用界面都可以抽象为一个组件树: 在 Vue 里,一个组件本质上是 ...

  7. Linux笔记01

    linux目录结构 : linux只有一个目录. usr:等价于programfiles: etc:存放系统配置 root:管理员(超级用户)目录, home:存放其他用户的目录: lib:共享包: ...

  8. English Words and Expressions

    Words apprentice 学徒 corny 老套的 obnoxious 作呕的 intermezzo 间奏曲 predate 日期上早于 parenthesis 括号 delimiter 分隔 ...

  9. python:批量修改文件名批量修改图片尺寸

    批量修改文件名  参考博客:https://www.cnblogs.com/zf-blog/p/7880126.html 功能:批量修改文件名 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  10. Python csv文件操作

    一.open文件打开和with open as 文件打开的区别 file= open("test.txt","r") try: for line in file ...