抖音Web端私信Protobuf逆向解析实战

逆向实战:我是如何用Python+Protobuf搞定抖音Web端私信抓包的(附完整代码) 本文详细介绍了如何利用Python和Protobuf逆向解析抖音Web端私信协议的全过程,包括网络请求分析、Protobuf二进制数据解析、.proto文件编写及Python代码实现。通过实战案例,帮助开发者掌握WebSocket+Protobuf协议的逆向工程技巧,适用于即时通讯协议分析和数据抓取场景。 阅读详情

1. 从抓包到发现:抖音Web端私信的秘密通道

那天我正琢磨着怎么自动化处理一些抖音上的消息,第一反应就是去Web端抓个包看看。打开浏览器开发者工具,切换到Network(网络)标签页,然后点开私信聊天窗口。我本以为会看到一堆熟悉的HTTP请求,结果刷新了几次,私信列表和消息发送的请求踪迹全无。这不对劲啊,消息明明发出去了也收到了。

我耐着性子,在Network里勾选了“WS”(WebSocket)的筛选器。好家伙,这一下就明朗了!一个以wss://开头的连接赫然在列,点进去看它的“Messages”标签页,里面密密麻麻的二进制数据帧在实时流动。发送一条“你好”,就能立刻在WebSocket的帧列表里看到一两条新出现的、内容像乱码又像十六进制码的数据。这就是了,抖音Web端的私信,核心通信走的根本不是传统的HTTP,而是WebSocket,并且传输的不是JSON,是经过Protobuf序列化后的二进制数据。

这个发现让我既头疼又兴奋。头疼的是,WebSocket是长连接,数据是二进制流,不像HTTP请求那样一目了然;兴奋的是,这正是一个绝佳的Protobuf逆向解析实战机会。Protobuf是Google搞的一种高效的数据序列化协议,比JSON体积小、速度快,但代价就是人类不可直接阅读。对于开发者来说,面对一个未知的Protobuf接口,就像拿到一个没有钥匙的加密盒子,你得自己把锁的结构(也就是.proto定义文件)给反推出来。

所以,咱们这次实战的目标就很明确了:从零开始,把抖音Web端私信这个“黑盒”通信里用的Protobuf数据结构给扒出来,并最终写出能模拟发送和解析的代码。 这个过程,本质上就是一次小型的数据协议逆向工程。别怕,跟着我的步骤,就算你之前没碰过Protobuf,也能一步步把它拿下。我们需要用到的工具主要就是浏览器(用于抓包)、一个能解析二进制的工具(比如protoc命令行),还有你的代码编辑器。

注意:本文所有操作均基于公开的、可观察的网络通信协议分析,旨在学习数据序列化技术。请务必遵守相关平台的使用条款,仅将技术用于合法合规的学习与研究目的。

2. 抓包与数据捕获:拿到第一手“密文”

工欲善其事,必先利其器。第一步,我们得把原始的Protobuf二进制数据给“捞”上来。

我用的主力浏览器是Chrome,它的开发者工具足够强大。打开抖音Web端并登录,进入私信页面。接着按下 F12 打开开发者工具,切换到 Network(网络) 面板。这里有个关键操作:由于WebSocket连接可能在我们打开工具之前就建立了,所以最好先清空一下当前的记录(点击那个红色的圆形停止按钮旁边的垃圾桶图标),然后刷新一下私信页面,或者手动发送一条测试消息。

这时,你应该能在网络请求列表里找到一个或多个 wss:// 开头的请求,Type(类型)显示为 websocket。点击它,然后选择 Messages(消息) 子面板。这个面板会显示这个WebSocket连接上所有来回的数据帧。

现在,发送一条简单的文本消息,比如“test”。你会在Messages面板里看到几乎同时出现了一到两条新记录。这些记录的内容看起来是一串乱码或者像 0A 08 74 65 73 74 12 ... 这样的十六进制数字。这些就是我们的目标——Protobuf编码后的二进制数据。 通常,发送的消息和接收的消息是分开的,我们需要把它们都保存下来。

怎么保存呢?在Chrome里,你可以右键点击某一条消息记录,选择 “Copy message” -> “Copy as binary”。但是,这样复制出来的是十六进制字符串,我们还需要一步转换。更直接的方法是使用一个叫 “Save all as HAR with content” 的功能,但这有点重。我更喜欢用一个小技巧:直接看消息的“十六进制视图”。有些抓包工具如 Fiddler、Charles 或专业的 Wireshark 能直接看到并导出原始二进制,但对于Web端快速入门,我们可以用更轻量的方法。

这里我推荐一个在线的辅助小工具,或者用Node.js/Python写两行代码。不过,最“硬核”也最直接的方法,是借助Chrome开发者工具的控制台(Console)。在Messages面板,每条消息其实是一个 ArrayBuffer 对象。你可以尝试在Console里输入 $0 (这代表当前在Elements面板选中的元素,在Network里不直接适用),但更可靠的方法是:先点击一条消息选中它,然后在Console里通过JavaScript访问它。不过这个操作对新手有点绕。

最稳妥的实操步骤是这样的:

  1. 在Messages面板,找到你发送消息后出现的那条出站(Outgoing) 帧。它的数据大概率更短一些。
  2. 想办法把它的原始二进制数据保存成一个本地文件。一个笨办法但有效:如果你看到的是十六进制视图(像1F 8B 08 00...),就把这一串十六进制字符(去掉空格和换行)复制下来。
  3. 使用一个在线的“Hex to File”转换工具,或者用Python脚本(例如 bytes.fromhex(hex_string) 然后写入文件)把它转成一个 .bin 文件。我通常就直接在本地用Python处理了,几行代码的事。

假设我们费了点功夫,终于把一条“发送消息”对应的二进制数据保存到了本地,命名为 send_message.bin。同样地,也把一条“接收消息”的数据保存为 receive_message.bin

抖音私信接口reuqest_sign签名逆向分析:从抓包到算法还原实战 在移动应用安全与API接口设计中,签名机制是保障请求合法性与数据完整性的核心技术,其原理通常基于哈希算法(如MD5、SHA256)或HMAC,对请求参数进行特定规则处理后生成唯一标识。这项技术的核心价值在于防止请求被篡改和伪造,是构建安全通信的基石,广泛应用于用户认证、支付、数据提交等关键场景。以抖音企业版私信接口为例,其reuqest_sign参数正是这一机制的典型实现。通过动态插桩工具Frida进行Hook,结合静态反编译工具Jadx和IDA Pro对SO库进行深度分析,可以逆向出签名算法的完整逻辑,包 阅读详情

相关推荐

某音Web端消息体ProtoBuf结构解析

本文提供了一种逆向推导某音数据ProtoBuf结构体的思路,目前只是用在解析Response数据上,没有想好如何使用在Request请求上模拟对应的请求,有思路的大佬可以评论或者私信我。相关的Proto文件已经开源在新媒体运营工具,请大家多多支持!

fangpopopo的博客 836

研究抖音私信名片链接和消息卡片逆向分析笔记

笔者最近遇到朋友的抖音工作室需求,做一个抖音的私信名片链接,分析抖音app的原理后,需要一些加工方法,步骤记录如下: Charles数据采集 对于移动端开发者来说,并不是每个项目都有机会可以直接接触到后端代码,所以进行网络请求调试时,借助Charles、Fiddler、Wireshark等测试工具对请求进行抓包分析,将使请求细节清晰明了的展现在开发者眼前,降低开发者的调试难度。除此之外,对他人开...

qq_47127892的博客 6668

某音Web端Response数据ProtoBuf逆向解析实战

本文详细介绍了如何对某音Web端Response中的ProtoBuf数据进行逆向解析。通过定位网络请求、使用在线工具初步解析十六进制数据、在混淆的源代码中搜索关键消息类型ID,最终推导并编写出完整的.proto文件结构定义。文章以私信初始化接口为例,提供了从数据抓取到验证的完整实战步骤,帮助开发者应对非JSON格式的接口数据解析挑战。

eee77的博客 1100

某音Web端私信数据逆向实战:从ProtoBuf十六进制到可读Json的完整解析流程

本文详细解析了某音Web端私信数据逆向实战的全过程。针对服务器返回的Protobuf十六进制数据,文章从环境准备、数据捕获入手,深入介绍了使用protobuf-inspector等工具进行逆向分析、定位并提取.proto定义文件的核心思路与步骤,并最终通过编写脚本将二进制数据成功解析为可读的JSON格式,为开发者理解复杂数据交互提供了完整的技术路径。

weixin_29290963的博客 515

Web某音数据Protobuf协议解析

Web页面上所有的数据其实基于RPA都可以抓取,但是对于私信聊天这样高密度的信息,RPA抓取其实并不是能够很好的胜任。因此基于Response信息我们可以通过解析出想要的信息。目前还没有研究明白该如何发送Request请求,有大佬可以在评论区留言或者私信。请大家多多支持新媒体运营工具。

qq_24874719的博客 659

抖音Web端私信逆向实战:手把手教你用Protobuf解码WS协议消息(附完整proto文件)

本文详细解析了抖音Web端私信协议的逆向过程,重点介绍了如何使用Protobuf解码WebSocket传输的二进制消息。从抓包工具配置到.proto文件编写,再到消息构造与验证,提供了一套完整的解决方案,帮助开发者深入理解抖音私信协议的核心机制。

weixin_31648507的博客 433

TikTok IM协议逆向实战:解密WSS通信与模拟商品卡片发送

即时通讯(IM)协议是现代移动应用的核心组件,它基于WebSocket等实时通信技术,在客户端与服务器之间建立安全、高效的双向数据通道。其核心原理通常涉及连接建立、消息序列化、加密传输和状态同步等机制。从技术价值看,深入理解IM协议不仅有助于优化应用性能,更是进行安全审计、自动化测试和第三方集成开发的基础。在电商、社交等应用场景中,IM协议常被用于实现商品分享、订单通知等富媒体交互功能。本文聚焦于TikTok IM协议,通过逆向工程手段,详细剖析其基于WebSocket Secure(WSS)的通信流程与消

weixin_33690367的博客 442

抖音直播间弹幕解析:点赞,评论,送礼,进入提示等(1:概叙)

抖音直播时,如需要抓取到直播间的数据,你需要了解如下几个知识点:本文会指导准本好环境,了解整体的技术路线。 本文为原创内容,转载需联系我,我同意后才能转载。 抓取分析后的打印效果 ​​​​​​ 1:抓包。 为了方便抓包,我们使用谷歌浏览器看直播。也就是抓取抖音 web直播内容。现在抓包工具特别多,但是为了让我们的Python程序处理抓包的数据,那么我们使用的抓包工具就不能乱选。目前我选的抓包工具:mitmproxy。 mitmproxy还有两个关联组件,一个是mitmdump,它是mitmpro.

softboy安卓软件 9350

# Python数据取证实战:基于黑盒模式的票星球Protobuf二进制流清洗与座位数据提取

通过上述三个模块的协作,我们实现了一个无需 .proto 文件即可从二进制流中“扣”出关键数据的清洗脚本。技术沉淀:容错处理:在处理未知二进制文件时,errors=‘ignore’ 配合正则提取是比尝试完全逆向协议更具性价比的方案。正则策略:处理自然语言(如座位名)时,寻找“锚点词”(如“排”、“号”)比匹配整体结构更稳健。数据验证:基于数量和长度的启发式规则,是清洗脏数据的最后一道防线。这种“黑盒清洗”的思路不仅适用于票务数据,在日志分析、网络爬虫数据提取等场景下同样具有广泛的借鉴意义。

猫敷雪 150

protobuf-抖音sw.e

protobuf_抖音sw.e

gem5 prefetcher

最近在gem5上做预取实验,添加自己的预取算法,这里采用hardware stream prefetcher , 修改了几个bug才给实验调试通过,发文记录下实验过程。 gem5上添加自己的预取算法步骤: (1)路径gem5-master/configs/common/Caches.py下,开启预取:class L1Cache(Cache): assoc = 2 tag_late

编程邦 3840

AI Agent技术架构与规模化应用:2025年技术深度解析

2025年,AI Agent(人工智能智能体)迎来了规模化应用的拐点时刻。根据Gartner等权威机构预测,企业软件中整合自主型AI的比例将从2024年的不足1%跃升至2028年的33%。本文深入剖析AI Agent的核心技术架构,从规划模块、记忆模块、工具调用模块到底层实现原理,结合Python和Go语言的实际代码示例,全面阐述AI Agent的技术实现路径。同时,本文探讨多智能体协作系统、企业级部署架构以及未来的技术演进方向,为开发者和技术决策者提供系统性的技术参考。关键词:AI Agent、大语言模型

shao.bing的专栏 1343

利用HipSTR从二代测序数据中精准解析短串联重复序列(STR)的遗传多态性

本文详细介绍了如何利用HipSTR工具从二代测序(NGS)数据中精准解析短串联重复序列(STR)的遗传多态性。通过三步走策略,HipSTR能够高效识别STR区域、估算重复次数并判定基因型,适用于法医鉴定、疾病研究和细胞系鉴定等多个领域。文章还提供了实战操作指南和常见问题解决方案,帮助研究者充分利用NGS数据开展STR分析。

weixin_28702105的博客 471

绝缘检测是什么? 绝缘检测原理 绝缘检测检测的是什么?那个量?电压?电流?电阻?

绝缘电阻是电气设备和电气线路最基本的绝缘指标。对于低压电气装置的交接试验,常温下电动机、配电设备和配电线路的绝缘电阻不应低于0.5MΩ(对于运行中的设备和线路,绝缘电阻不应低于1MΩ/kV)。 绝缘电阻的正确测量方法 现代生活日新月异,人们一刻也离不开电。在用电过程中就存在着用电安全问题,在电器设备中,例如电机、电缆、家用电器等。 影响因素 环境温湿度 一般材料的绝缘电阻值随环境温湿度的升高而减小。相对而言,表面电阻(率)对环境湿度比较敏感,而体电阻(率)则对温度较为敏感。 湿度增加,表面泄漏增大,导体电导

dianqicyuyan的博客 2万+

【ComfyUI专栏】ComfyUI 常用工作流下载与分享网址

首先我们来分享第一个网站,Openart 网站,这个网站同时也能提供比较多的其他类型。但是如果希望下载工作流,我们可以访问到如下的这个站点。作为ComfyUI的学习用户来说,我们通常需要借助他山之石来帮助我们快速成长,因此我们需要找到能够分享和下载的网址。,当前网站是综合性网站,在网站中可以下载各种不同的类型,其中工作流只是可以下载的非常小的部分。这个网站也可以浏览不同的工作流,这个工作流的地址和访问如下的站点。

技术与管理的平衡木- 7712

在 SAP Fiori 里玩转 Manage Views:把过滤器与列表布局固化成你的默认工作台

本文介绍了SAP Fiori应用中"Manage Views"功能的核心价值和使用方法。该功能允许用户保存和复用个性化界面设置,包括筛选条件、列布局等,将重复操作简化为一次性配置。文章从技术实现、用户操作和治理建议三个维度展开: 功能本质:View存储的是界面状态而非业务模型,是提升个人生产力的工具 核心价值:固化高频操作,支持默认视图设置,实现"开箱即用"的工作状态 操作指南:详细说明了收藏、重命名、设为默认、自动应用等关键功能 治理建议:区分标准视图、个人视图和公

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 122

提示工程从初级到高级:如何评估提示词的鲁棒性?架构师分享测试方法

鲁棒性(Robustness)原本是工程领域的概念,指系统在“非理想条件”下保持性能稳定的能力。输入鲁棒性:面对不规范、有噪音、格式变异的用户输入,提示能否引导模型输出正确结果?模型鲁棒性:同一提示在不同大模型(或同一模型的不同版本)下,输出是否一致?场景鲁棒性:在边界场景(极端case、歧义case、多任务混合)下,提示能否保持逻辑一致性?提示词V1:请将以下用户评论分类为「正面」「中性」或「负面」:{comment}。要求:输出唯一类别,不要额外说明。

小程序开发 492

MCAL中Dsadc的配置

DSADC模块作为一个专用的模块,主要应用在编码器软解码,功能强大而复杂,这里介绍了Dsadc的mcal配置和详细描述,让你全面学习和理解这个模块功能和应用。

dhyw12399999的博客 783

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 利用Docker-Autocompose实现容器配置的自动化备份与版本管理
下一篇: 从时序振动到故障预警:LSTM-Autoencoder在工业电机预测性维护中的实战解析
water
博客等级 码龄27年 1309粉丝 2486原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值