内容简介:whistle是基于Node实现的跨平台抓包工具,有关whistle的内容请查看Github:在如果是自己实现的代理,代理请求头要加上
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插件开发
有关自定义包解析器的可以参考以下两个项目:
- 自定义解析WebSocket请求: whistle.custom-ws
- 自定义解析普通Socket请求: whistle.custom-parser
以上所述就是小编给大家介绍的《抓包调试protobuf请求》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 利用 WireShark 深入调试网络请求
- iOS常用调试方法:断点调试
- 断点调试和日志调试之间的平衡点:函数计算调试之 Python 篇
- .NET高级调试系列-Windbg调试入门篇
- VisualStudio 通过外部调试方法快速调试库代码
- GDB 调试 Mysql 实战(二)GDB 调试打印
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Mining
Jiawei Han、Micheline Kamber、Jian Pei / Morgan Kaufmann / 2011-7-6 / USD 74.95
The increasing volume of data in modern business and science calls for more complex and sophisticated tools. Although advances in data mining technology have made extensive data collection much easier......一起来看看 《Data Mining》 这本书的介绍吧!