专栏首页IMWeb前端团队抓包调试protobuf请求

抓包调试protobuf请求

本文作者:IMWeb avenwu 原文出处:IMWeb社区 未经同意,禁止转载

whistle是基于Node实现的跨平台抓包工具,有关whistle的内容请查看Github:https://github.com/avwo/whistle

轻松篡改WebSocket数据包一文中谈了如何用whistle抓包调试WebSocket请求,事实上whistle也支持对普通的Socket(TCP)请求进行抓包调试,只需要客户端将请求通过HTTP代理的方式转发到whislte即可,其中Node程序可以直接用socketx模块实现,其它程序也可以参考该模块的实现:https://github.com/avwo/socketx

如果是自己实现的代理,代理请求头要加上 x-whistle-policy: tunnel,这样可以让whistle的Frames显示长连接的每帧数据,并可以防止whistle开启全局捕获HTTPS请求时误把Socket请求当成普通的https请求; 如果确实无法在代码里面修改代理请求头,需要通过在Rules里面设置规则 tunnel://host:port disable://capture enable://inspect 禁用定host和端口的HTTPS捕获及开启显示请求的每帧数据。

但在实际使用过程中,不是每个需要传输的数据包对应一帧数据,由于数据包大小关系,经常会出现拆包粘包的情况,因此对传输的数据包进行封装以便在接收方能完整取出,这时需要发送和接收方约定一种传输协议,如WebSocket内置的传输协议,普通的Socket连接也可以自定义简单的传输协议,如:simpleproto。在进行上述组包之前可能还会用protobuf等协议对数据包进行序列化压缩加密等,导致在whistle界面上看到的普通长连接数据包不完整或出现乱码,难以用whistle进行抓包调试这类长连接。

为方便抓包调试自定义协议的长连接请求,whistle v1.13.1 版本开始把界面 Network/Frames 的API通过事件的方式暴露给插件,方便插件自定义解析WebSocket、Socket请求的数据包并显示到界面的Frames列表中,同时可以监听到该面板的暂停、忽略、构造数据等操作,实现抓包调试各种自定义协议(不局限于protobuf协议)。

自定义长连接包解析器,要求 whislte >= v1.13.1 版本,如果版本太低可以点击此链接升级:https://wproxy.org/whistle/update.html 不清楚whistle插件机制的可以先看下文档:whistle插件开发

有关自定义包解析器的可以参考以下两个项目:

  1. 自定义解析WebSocket请求:whistle.custom-ws
  2. 自定义解析普通Socket请求:whistle.custom-parser

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 利用whistle调试移动端页面

    whistle是基于Node实现的跨平台web调试代理工具,可以作为普通的http代理或者用来抓包、修改、操作http、https、websocket、tunn...

    IMWeb前端团队
  • 利用whistle调试移动端页面

    whistle是基于Node实现的跨平台web调试代理工具,可以作为普通的http代理或者用来抓包、修改、操作http、https、websocket、tunn...

    IMWeb前端团队
  • 跨平台web调试代理工具--whistle

    whistle是基于Node实现的跨平台web调试代理工具,支持windows、mac、linux等所有安装了Node的操作系统,可以部署在本地机器、虚拟机或远...

    IMWeb前端团队
  • 资源 | 挑战谷歌,Facebook 发布交互数据可视化工具 Visdom

    选自GitHub 机器之心编译 参与:微胖、吴攀 FAIR 发布了 Visdom,一款可在 Torch、PyTorch 以及 NumPy 上实现交互式数据可视化...

    机器之心
  • 哈佛有只”精灵球“,唯有它能温柔收放深海的软体精灵 |Science Robotics

    收起的时候,它就变成了正十二面体,宽度是8英寸 (约20公分) ,比保龄球稍小一点。

    量子位
  • C#对Windows服务组的启动与停止

    Windows服务大家都不陌生,Windows服务组的概念,貌似MS并没有这个说法。 作为一名软件开发者,我们的机器上安装有各种开发工具,伴随着各种相关服务。 ...

    用户1637609
  • 在视频app开发过程中,用到的音视频编解码技术有哪些?

    如果想要开发一款视频app用于直播,作为一名开发者,首先要了解它的技术架构是什么。一个完整的直播技术架构包含:音视频采集、前处理、编解码、多媒体处理、流媒体协议...

    就爱吃小笼包
  • 数字孪生再现旅行者号轨迹,可视化拉开航天新时代

    可曾惊异于《星球大战》中的星际航行,可否被《流浪地球》中,人类推动着地球离开太阳系的壮举所震撼。这所有不可思议的遐想,多少来自于这张照片。

    万物皆可联i
  • leetcode每日一题:290. 单词规律

    leetcode每日一题:290. 单词规律:https://leetcode-cn.com/problems/word-pattern/

    用户7685359
  • 投不进球都是篮板的锅,这个用蒙特卡罗法做的篮板让你「百发百中」

    图上的这个篮板是一位名叫 Shane Wighton 的小哥做出来的。上个月,他在 YouTube 上放出了这段视频,点击量已经超过 437 万。从视频中可以看...

    机器之心

扫码关注云+社区

领取腾讯云代金券