免责任声明:
任何可操作性的内容与本文无关,文章内容仅供参考学习,如有侵权, 损害贵公司利益,
请联系作者,会立刻马上进行删除

分析下:

  1. 1.protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。
  2. protobuf是新型通信协议, 在抖音里的私信也是走的pro协议实现的。
  3. 解析pro协议的数据包需要反序列化才可以解析。

一、protobuf正向流程

1.创建proto文件生成对应的py文件

pycharm有编辑proto的插件,写代码有提示很方便,创建protobuf文件包,创建addressbook.proto文件

syntax = "proto3";message AddressBook {repeated Person people = 1;
}message Person {string name = 1;int32 id = 2;string email = 3;float money = 4;bool work_status = 5;repeated PhoneNumber phones = 6;MyMessage maps = 7;}message PhoneNumber {string number = 1;PhoneType type = 2;
}message MyMessage {map<int32, int32> mapfield = 1;
}

进入这个文件的目录

protoc ./addressbook.proto  --python_out=./


创建add_person.py

# 环境python3.8
from protobuf import addressbook_pb2
from google.protobuf import json_format# 添加数据信息
address_book = addressbook_pb2.AddressBook()
person = address_book.people.add()person.id = 1
person.name = "safly"
person.email = "safly@qq.com"
person.money = 1000.11
person.work_status = Truephone_number = person.phones.add()
phone_number.number = "123456"
phone_number.type = addressbook_pb2.HOMEmaps = person.maps
maps.mapfield[1] = 1
maps.mapfield[2] = 2# 转成字符串
serializeToString = address_book.SerializeToString()
print(serializeToString)# a = address_book.ParseFromString(serializeToString)
# print(type(address_book.people))# 转成json
b = json_format.MessageToJson(address_book)
print(b)

文章转载于: https://blog.csdn.net/weixin_49572581/article/details/118731675

二、protobuf逆向流程

1.抓包确定位置
通过charles抓包

那就已经接口是aweme/v2/feed,打开jadx打开app全局搜索关键词,按住ctrl点击这个类

点进去就找对应的字段和编号啦

2.根据代码编写相应的proto文件

syntax = "proto3";
// 这里还需要其他的proto文件,数据很多,jadx代码上都有,安装ctrl点进去就是,以此类推
import 'myAwemeStructV2.proto';
import 'myExtraStructV2.proto';
import 'myLogPbStructV2.proto';
import 'myGuideWordV2.proto';message AwemeV2FeedResponse {int32 status_code = 1;int64 min_cursor = 2;int64 max_cursor = 3;int32 has_more = 4;repeated my_aweme_struct_v2.AwemeStructV2 aweme_list = 5;string rid = 6;int32 home_model = 7;int32 refresh_clear = 8;repeated my_extra_struct_v2.ExtraStructV2 extra = 9;repeated my_log_pb_structV2.LogPbStructV2 log_pb = 10;string DebugInfo = 11;repeated my_guide_word_v2.GuideWordV2 guide_word = 12;repeated my_aweme_struct_v2.AwemeStructV2 preload_ads = 13;string status_msg = 14;int32 block_code = 15;repeated my_aweme_struct_v2.AwemeStructV2 preload_awemes = 16;bool enable_re_rank = 17;bool disable_adjust_for_cache = 18;
}

3.结果

生成相应的py文件,最后结合抓取的信息转换成json格式示例代码

# 环境python2.7
info = DouyinAwemeFeed_pb2.AwemeV2FeedResponse()
info.ParseFromString("你的请求proto数据")
print json.dumps(MessageToDict(info, preserving_proto_field_name=True), ensure_ascii=False)

然后让我们看下最后的效果,最后抖音直播间实时弹幕信息就这样获取到了。
有热爱技术的小伙伴们(扣扣: 519545433)可以一起交流进步啊

抖音直播间弹幕protocbuf分析相关推荐

  1. 抖音直播带货数据统计,抖音直播间数据怎么分析

    现在直播带货是一个热门趋势,它可以突破抖音挂购物车数量的限制,已经有不少商家通过直播带货实现流量变现了.那么,如何做好抖音直播就成了抖音电商玩家最大的需求. 很多带货直播团队都知道,直播后对抖音直播间 ...

  2. JS逆向-B站直播间弹幕protocbuf分析【10-24】

    先简单的记录下,有空再详细补充下. bibi直播间的弹幕协议已经从https变成wss. 抓包分析得知请求地址为:wss://hw-bj-live-comet-05.chat.bilibili.com ...

  3. 抖音直播间弹幕rpc学习

    目标url 随便找个直播间即可. https://live.douyin.com/198986091107 接口分析 首先并没有在xhr下找到对应的接口 因为采用了websocket来传输信息.切换到 ...

  4. 抖音直播间千川投放有用吗?直播间投放分析有什么技巧

    目前来说,抖音推广直播间仍然是非常多抖音直播电商运营者加热直播间的主要方式之一,抖音推广直播间最大优势就是实时画面展示在视频推荐页,且可以根据定向人群进行投放,能够最大限度引流直播间. 千川投放是目前 ...

  5. 视频智能安防监控系统EasyNVR推流到抖音直播间添加背景音乐程序闪退问题分析

    TSINGSEE青犀视频今年的项目需求中,很多来自景区的直播需求,即响应智能+趋势,景区也开始将封闭在内网中的监控,作为营销手段公开出去,作为公众了解景区的手段之一,同时利用抖音.快手等直播平台庞大的 ...

  6. 提高抖音直播间人气!教你如何做好抖音直播场控!

    不是吧,不是吧,不是到现在你的抖音直播间还没有场控吧! 场控是抖音直播间不可或缺的一员,从过去的边缘配角,逐渐演变成直播间不可或缺的一个角色.毫不夸张地说,一场直播有优秀的场控在,直播间销量一定不会差 ...

  7. 手把手教你提升抖音直播间人气、流量的6个技巧

    "抖音直播带货"绝对是近两年最热的"风口",几乎全民直播带货,在这样一个繁荣景象下,大家都想迎上这个风口,无数明星.名人纷纷加入"混战". ...

  8. 【方案分享】2021AMII品牌女装抖音直播间运营方案.pptx

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年1月份热门报告盘点 [报告分享]2021-2022元宇宙报告.pdf 2022年私域运营机 ...

  9. 抖音直播间流量起不来怎么办?首先要搞懂这个问题!

    说到抖音直播,大部分的小伙伴们在尝试直播后,遇到最多的问题就是:我的直播间为什么没有流量?直播在线人数连50个都没有,到底怎么才能有效引流? 其实,这个问题并不难解决,最基本的就是你要知道直播间的流量 ...

最新文章

  1. html 文档自动获取css,前端基础中css选择器,html文档 ,与javascrip中基本的获取
  2. jOOQ与Hibernate:何时选择哪个
  3. idea全局搜索搜不全的BUG
  4. python classmethod用处_Python classmethod类方法修饰符
  5. numpy-ufunc函数
  6. asyncio 文件io高并发_python教程:使用 async 和 await 协程进行并发编程
  7. vscode配置代理
  8. JAVA 计算小数位数
  9. 禁止网页右键查看源代码
  10. android点击展开全文,Android显示全文折叠控件使用方法详解
  11. Hantek6022BE 虚拟示波器 使用心得
  12. M.2/sata2.0/3.0接口,PCI-E1.0/2.0/3.0/4.0x2x4x8x16速率汇总
  13. 用matlab画旋转抛物面_基于MATLAB的旋转抛物面天线的几种特性的仿真
  14. vue-video-player,springboot实现视频分段下载播放
  15. 微信小程序自学笔记-----文本和字体样式设置
  16. EXt的数据加载与展示
  17. 如何在手机上打开xmind文件_如何将 XMind 文件从电脑上传输至 XMind 安卓版? – XMind帮助中心...
  18. linux服务器系统cpu监控-shell脚本
  19. 页面自动获取焦点影响页面切换效果_HTML5-焦点管理
  20. 随机生成字母数字字符串

热门文章

  1. Spring Boot整合Spring Data Redis-提取Redis的链接参数
  2. Zuul:路由和高可用小结
  3. MySQL常用存储引擎之Memory
  4. Zookeeper_zkClientListener讲解
  5. DSA签名算法 - Java加密与安全
  6. 基于multisim的fm调制解调_高通二代5G调制解调器骁龙X55实现7Gbps高速率,透露5G三大关键点...
  7. 计算机刷帖知识点,09计算机408分(沙滩帖)
  8. PyTorch深度学习实践07
  9. 26.Android Studio下Ndk开发(ffmpeg导入Android studio以cmake方式编译的过程)
  10. 65.4. Other GUI - phpOraAdmin