抖音直播弹幕数据逆向:websocket和JS注入

🔍 思路与步骤详解

在这里插入图片描述

🕵️‍♂️ 思路介绍

首先,我们通过抓包工具进入的直播间,捕获其网络通信数据,重点关注WebSocket连接。发现直播弹幕数据通过WebSocket传输,这种方式比传统的HTTP更适合实时数据的传输。我们在浏览器开发者工具中打开WebSocket的堆栈调试,分析数据传输的过程,定位关键的JavaScript代码。在JavaScript文件中搜索“.decode”,找到第一个搜索结果并仔细观察,这是解密二进制数据的关键位置。在找到弹幕数据传输的位置后,我们可以开始植入自定义的JavaScript代码,以捕获并解密弹幕数据。

📜 步骤详解

🌐 websocket介绍

WebSocket是一种在单个TCP连接上进行全双工通信的协议。与HTTP/HTTPS的请求-响应模式不同,WebSocket允许服务器主动推送数据到客户端,极大地减少了通信延迟和带宽消耗,非常适用于需要实时数据更新的场景,比如聊天应用、直播弹幕等。

🛠 抓websocket的包

使用抓包工具捕获WebSocket的数据包,分析其通信内容。
在这里插入图片描述
WebSocket的数据包通常是二进制格式,需要进一步解码。

🧩 观察响应 为二进制的数据流

通过抓包工具观察WebSocket的响应数据,发现其内容为二进制的数据流,需要找到解码方法。
在这里插入图片描述

🔄 调试堆栈 找到解密位置

在浏览器中调试堆栈,找到负责解密二进制数据的代码位置,这是解码弹幕数据的关键。
在这里插入图片描述

🧬 JS注入 提前准备好代码

编写自定义的JavaScript代码,用于替换原有的解密逻辑,将解密后的弹幕数据输出到控制台。
在这里插入图片描述

🛠 本地替换准备好的JS文件

通过本地调试工具将准备好的JavaScript代码注入到网页中,替换原有的解密逻辑。
在这里插入图片描述

🔄 刷新页面 注入成功 控制台打印信息

刷新页面后,验证我们的JavaScript代码是否成功注入,查看控制台是否正确输出解密后的弹幕数据。
在这里插入图片描述

🐍 python实现socket服务端

编写Python代码实现一个Socket服务端,用于接收和处理解密后的弹幕数据,实现实时数据的抓取和分析。
在这里插入图片描述

🎉 弹幕抓取成功

通过上述步骤,我们成功抓取并解密了直播间的弹幕数据,Python和JavaScript的协同工作让这一切成为可能。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/51608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端基于 axios 实现批量任务调度管理器 demo

一、背景介绍 这是一个基于 axios 实现的批量任务调度管理器的 demo。它使用了axios、promise 等多种技术和原理来实现批量处理多个异步请求,并确保所有请求都能正确处理并报告其状态。 假设有一个场景:有一个任务列表,有单个任务的处理功能…

alova的二次封装

alova的二次封装 为什么要进行alova二次封装二次封装的具体步骤1. index.js2. api.js3. service.js4. 在Vue中使用 为什么要进行alova二次封装 上篇文章介绍了alova的基本使用方法:alova详解,对比axios,alova的具体使用,但是每次…

【Qt】QLCDNumberQProgressBarQCalendarWidget

目录 QLCDNumber 倒计时小程序 相关属性 QProgressBar 进度条小程序 相关设置 QLCDNumber QLCDNumber是Qt框架中用于显示数字或计数值的小部件。通常用于显示整数值,例如时钟、计时器、计数器等 常用属性 属性说明intValueQLCDNumber显示的初始值(int类型)va…

企业版邮箱适用哪些企业

企业邮箱适合哪些企业呢?企业版邮箱为企业提供安全、稳定、集成的邮件服务,支持初创、中小、大型企业及特定行业需求。ZohoMail作为优质提供商,提供多层安全措施、移动访问、集成能力及定制化服务,满足不同规模企业需求。 一、企…

2023年系统架构设计师考试总结

原文链接:https://www.cnblogs.com/zhaotianff/p/17812187.html 上周六参加了2023年系统架构设计师考试,这次考试与以前有点区别,是第一次采用电子化考试,也是教材改版后的第一次考试。 说说考前准备:为了准备这次考试…

流媒体服务器Nginx with RTMP安装和配置

以下是在 CentOS 7.6 上安装和配置 Nginx with RTMP module 的详细步骤: 1. 安装 Nginx with RTMP 模块 1.1 安装必要的依赖和工具 首先,更新系统并安装必要的依赖包: sudo yum update -y sudo yum install -y epel-release sudo yum ins…

基于微信小程序的校园警务系统/校园安全管理系统/校园出入管理系统

摘要 伴随着社会以及科学技术的发展,小程序已经渗透在人们的身边,小程序慢慢的变成了人们的生活必不可少的一部分,紧接着网络飞速的发展,小程序这一名词已不陌生,越来越多的学校机构等都会定制一款属于自己个性化的小程…

利用arthas热更新class文件

利用arthas热更新class文件 背景:发现一个bug,家里难以复现,需要在现场环境更新几行代码验证。 arthas-boot version: 3.7.1 java -jar arthas-boot.jar启动arthas 1、利用arthas的sc命令查找确定类名称 sc com.**2、反编译为java文件 …

《通讯世界》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《通讯世界》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《通讯世界》级别? 答:国家级。主管单位:科学技术部 主办单位:中国科学技…

C++ //练习 15.35 实现Query类和Query_base类,其中需要定义rep而无须定义eval。

C Primer&#xff08;第5版&#xff09; 练习 15.35 练习 15.35 实现Query类和Query_base类&#xff0c;其中需要定义rep而无须定义eval。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块&#xff1a; #include<iostream>…

如何从零开始搭建一个django+vue的前后端分离的自动化测试平台

嗨&#xff0c;大家好&#xff0c;我是兰若姐姐&#xff0c;今天手把手教大家搭建一个djangovue的前后端分离的自动化测试平台 一、前提条件 安装Python安装Node.js和npm&#xff08;或者yarn&#xff09;安装MySQL数据库安装Git 二、目录结构 project-root/├── backend…

关于虚拟机在桥接模式下连接网络问题的记录

2024年7月28日03:49:19 环境&#xff1a;ubuntu22.04 desktop 虚拟机 问题&#xff1a;使用wget下载nginx安装包时出现问题&#xff0c;443端口持续无连接成功回复。 随后在确定配置ip无问题&#xff0c;检查了其正常访问互联网&#xff0c;随后试图ping niginx网站&#xff…

基于OSS前端直传的分片上传以及断点续传

一、大文件分片上传 原型 大文件如果直接上传的话由于nginx的限制会导致响应500报错&#xff0c;或者响应时间过长导致响应超时 并且大文件上传有如下缺点 上传时间长: 对于大文件&#xff0c;直接上传可能需要较长时间&#xff0c;特别是在网络速度较慢或不稳定的情况下。这…

反射API安全白皮书:深入解析与防御策略

一、引言 反射API是编程中一种强大的工具&#xff0c;它允许程序在运行时动态地查询和操作对象的属性和行为。然而&#xff0c;这种灵活性也带来了显著的安全风险&#xff0c;如代码注入、信息泄露和绕过安全检查等。本文旨在深入解析反射API的安全问题&#xff0c;并提出相应…

ChatGPT秘籍:如何用AI阅读文献,提升你的学术效率

在当今信息泛滥的时代&#xff0c;迅速高效地搜集与处理信息显得尤为关键。本文将聚焦于如何利用ChatGPT高效阅读文献与文档&#xff0c;并提供详尽的技巧、心得以及实用的指令和插件解析&#xff0c;助你充分发挥ChatGPT的潜能。无论你是学生、科研人员还是行业从业者&#xf…

Laravel中的请求与响应:构建高效Web应用的秘诀

Laravel中的请求与响应&#xff1a;构建高效Web应用的秘诀 在Web开发的世界中&#xff0c;Laravel是一个优雅的PHP框架&#xff0c;以其简洁的语法和强大的功能而闻名。Laravel的请求&#xff08;Request&#xff09;和响应&#xff08;Response&#xff09;处理机制是构建高效…

雪花算法的一些问题解析

前言 最近做项目&#xff0c;有些老旧项目&#xff0c;需要生成分布式唯一ID&#xff0c;不允许重复&#xff0c;此时如果要对其他中间件和数据库依赖小&#xff0c;那么就需要一套固定的ID生成规则&#xff0c;雪花算法就正当合适&#xff0c;当时Twitter就是用来存储数据库I…

JSP基础语法与指令

任何语言都有自己的语法&#xff0c;在java中有&#xff0c;JSP作为java技术的一种应用&#xff0c;它拥有一些自己扩充的语法(了解知道即可&#xff01;&#xff01;&#xff01;)&#xff0c; Java所有语法都支持&#xff01; JSP表达式 <html><head><title…

【Redis 初阶】初识 Redis

一、了解 Redis Redis 官网&#xff1a;Redis - The Real-time Data Platform Redis 是一种基于键值对&#xff08;key-value&#xff09;的 NoSQL 数据库。与很多键值对数据库不同的是&#xff0c;Redis 中的 key 都是 string&#xff08;字符串&#xff09;&#xff0c;值&a…