前端无秘密

直播的逆向抓取说到底是前端的调试和逆向技术,加上部分的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更安全,这倒不全是技术上的优点,市场方面,一项技术从业人员越少,逆向成本越高

非专业逆向人员,技术有限,认知只限于此,若有误欢迎指出

最新文章

  1. 【Asp.Net Core】一、Visual Studio 2015 和 .NET Core 安装
  2. Linux中杀不死的进程
  3. 在asp.net mvc4项目里bootstrap datetimepicker控件的使用
  4. Python小知识
  5. 【LINUX/UNIX网络编程】之使用SOCKET进行UDP编程
  6. 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】
  7. Chp3: Stacks and Queue
  8. [BZOJ 3129] [Sdoi2013] 方程 【容斥+组合数取模+中国剩余定理】
  9. PHP图片操作
  10. Implement Insert and Delete of Tri-nay Tree
  11. javascript 里找元素操作元素
  12. mysql数据库管理工具navicat for mysql怎么用
  13. JVM笔记5-对象的访问定位。
  14. vue-router路径计算问题
  15. 转://ASM与文件系统之间文件传输
  16. android中一些特殊字符的使用(如:←↑→↓等箭头符号)
  17. C# 泛型分组和Linq分组的异同
  18. 12.24daily_scrum
  19. BZOJ.4903.[CTSC2017]吉夫特(Lucas DP)
  20. Python3 根据m3u8下载视频,批量下载ts文件并且合并

热门文章

  1. hostapd 热点设置
  2. mysql字符串操作
  3. 路由反射器(RR)配置
  4. python-局域网内实现web页面用户端下载文件,easy!
  5. SpringBoot之Order注解启动顺序
  6. CSS font-family 各字体一览表
  7. UVA 10054 The Necklace 转化成欧拉回路
  8. arm 裸机学习笔记
  9. 实验吧Web-中-让我进去(Hash长度扩展攻击、加盐密码及Linux下hashpump的安装使用)
  10. UNION和UNION ALL的作用和语法