【免费下载链接】awesome-reverse-engineering
Curated reverse-engineering tools and learning resources for binaries, apps, firmware, formats, and protocols.
awesome-reverse-engineering是一份精选的逆向工程工具清单,覆盖二进制、应用、固件、文件格式与协议分析。本文以它 README.md 中的Web and protocols(Web 与协议)章节为主线,带你用Burp Suite、mitmproxy、Wireshark、Scapy四大经典工具走通一条完整的HTTP 流量嗅探与协议逆向实战路线,帮助你快速选出适合自己的抓包工具。
一、为什么先从 HTTP 流量嗅探入手?
很多新手学协议逆向,第一反应是打开反汇编器硬啃二进制。但更高效的路径是黑盒先行:先用抓包工具观察程序在网络上"说了什么",再决定要不要深入静态分析。
| 对比维度 | 动态抓包(本文路线) | 静态逆向(反编译/调试) |
|---|---|---|
| 需要源码 | 不需要 | 通常不需要,但门槛更高 |
| 上手成本 | 低,装个代理就能开始 | 高,需要汇编基础 |
| 信息密度 | 直接看到字段与交互流程 | 看到实现细节但更抽象 |
| 典型工具 | Burp Suite、Wireshark | Ghidra、IDA、x64dbg |
HTTP 是最普遍、可读性最强的应用层协议,而大量私有协议(自定义 API、JSON 扩展、Protobuf 字段)都"寄生"在 HTTP 之上。因此HTTP 流量嗅探是协议逆向性价比最高的入口。
💡 在 README.md 的 "Start here" 任务表中,"Understand browser behavior or an undocumented protocol" 一项直接指向Web and protocols章节,就是本指南的起点。
二、工具总览:四大抓包工具怎么选?
项目 README.md 在 Web and protocols 章节收录了十余款工具,下面四款是覆盖面最广的组合拳:
| 工具 | 类型 | 定位 | 最适场景 |
|---|---|---|---|
| 🔍 Burp Suite | GUI 拦截代理 | 检查、重放、修改 HTTP 与 WebSocket 流量 | 网页/APP/API 抓包入门 |
| 📜 mitmproxy | CLI + Python 脚本 | 以交互式工具和脚本拦截、修改 HTTP 流量 | 批量自动化、插件定制 |
| 🛰️ Wireshark | GUI 抓包分析器 | 捕获并逐层解析网络流量 | 全协议栈分析、非 HTTP 私有协议 |
| 🧩 Scapy | Python 数据包框架 | 解析与构造协议、读写 PCAP、脚本化网络实验 | 重放、变体测试、自定义协议构造 |
一句话选型:
- 刚开始学 →Burp Suite(图形界面,所见即所得)
- 要批量改包、留档 →mitmproxy(脚本化)
- 抓包之外还要看 TCP/链路层 →Wireshark
- 要自己"造包"验证协议假设 →Scapy
另外,同章节的HTTP Toolkit适合不想折腾证书环境的快速体验,Chrome DevTools则适合直接在浏览器内检查网络请求。
三、Burp Suite:网页抓包的第一站
Burp Suite 是拦截式代理(intercepting proxy)的事实标准,提供免费的 Community Edition,足以完成入门学习。
典型抓包四步法
- 配置代理:让浏览器(或目标 APP)的流量经过 Burp 的本地代理端口
- 拦截与检查:在 Intercept 视图中逐条查看请求/响应,理解每个字段的含义
- 重放与修改:把请求丢进 Repeater,改变参数观察服务端行为变化
- 保存证据:导出会话 PCAP 或请求日志,供 Wireshark 离线复现
HTTPS 抓包的常见坑 🚧
- 需要在客户端导入并信任 Burp 的根证书,否则看到的全是
SSL_ERROR - 移动端 APP 常启用证书固定(certificate pinning),会直接拒绝代理证书,需要运行时手段处理
- 只对自己有权限测试的服务开启抓包,这是安全底线
四、mitmproxy:把抓包变成 Python 脚本
mitmproxy 最大的特点是"可编程":同一个流量管道,既提供 TUI 交互界面(mitmproxy)、Web 界面(mitmweb),也提供无头模式(mitmdump),并且全部行为都可以用 Python 钩子接管。
脚本化抓包示例
一个典型的 flow 钩子可以批量给每个请求打标、并打印响应状态:
def request(flow): flow.request.headers["X-Probe"] = "awesome-reverse-engineering" def response(flow): print(flow.request.url, flow.response.status)相比 GUI,脚本化抓包的优势在于:
- 可重复:同一套逻辑跑一百次结果一致,适合对比测试
- 可归档:把全部请求/响应落盘,事后离线分析
- 可自动化:参数模糊测试(fuzzing)、流量镜像、异常字段检测都能写进钩子
📌 项目还收录了REMnux(恶意样本分析工具箱,含网络流量分析)与pymobiledevice3(iOS 设备抓包),如果你要从 Web 抓包扩展到更复杂的场景,可以在 README.md 的 Malware analysis 章节继续查找。
五、Wireshark:看穿整个协议栈
Burp 和 mitmproxy 只能看到 HTTP 这一层,而 Wireshark 能自底向上逐层拆解:链路层 → 网络层 → 传输层 → 应用层。
高效分析三板斧
- 显示过滤器:
http.request只看 HTTP 请求;tcp.port == 8080锁定某个私有服务端口 - 会话跟踪:对可疑的 TCP 流执行 Follow Stream,拼出完整的双向数据
- 离线分析:在代理端抓好 PCAP 文件后,直接导入 Wireshark 分析,不必实时抓包
私有协议逆向的常用姿势
当流量不是标准 HTTP 时(例如自定义 TCP 协议、加密二进制流):
- 先看十六进制视图,寻找固定魔数(magic number)和长度字段
- 用多次抓包对比,找出不变量(通常是头部)与变量区(通常是载荷)
- 把疑似结构画成表格,再去 README.md 的File formats章节找ImHex、Kaitai Struct等工具辅助描述结构
六、Scapy:用 Python 构造与解析数据包
如果说前三款工具都是"看",Scapy 则是"造"。它是 Python 生态的"瑞士军刀":解析报文、构造任意层协议、读写 PCAP,全部可以用脚本完成。
分层对象模型,像搭积木
Scapy 项目仓库自带一个离线验证示例,位于 examples/resource-intake/README.md:用 Scapy 构造一个Ether/IP/UDP数据包,做 PCAP 写入与读回校验,全程不发送任何真实流量—— 这是新手练手的安全姿势。
核心构造代码(examples/resource-intake/verify.py)只有几行:
packet = ( Ether(src="02:00:00:00:00:01", dst="02:00:00:00:00:02") / IP(src="192.0.2.1", dst="192.0.2.2") / UDP(sport=1234, dport=4321) / Raw(b"trace") )随后通过wrpcap/rdpcap完成 PCAP 落盘与读回校验(verify.py),并把独立的 IP/UDP 校验和复核作为 oracle,确保解析结果可信。
逆向工作流中的 Scapy 用法
- 重放:把抓包还原成 Scapy 对象,改一个字节再发出去,验证服务端是否敏感
- 变体测试:批量生成"魔数错误/长度截断/尾部多余"的畸形包(参考 verify.py 中构造坏样本的思路)
- 桥接:
wrpcap导出的 PCAP 可直接拖进 Wireshark 可视化确认
📦 运行示例的依赖锁定在 examples/resource-intake/requirements.txt,verified.json 记录了该示例在 Scapy 2.8.0 下的通过结果与测试范围,方便你复现时对照。
七、实战路线:从 HTTP 请求到私有协议
把四款工具串起来,就是一条完整的协议逆向流水线:
- 📡建立基线:Burp Suite 代理抓取目标服务的完整 HTTP 请求/响应对
- 🔎拆解字段:Wireshark 离线分析,定位私有字段、状态机与心跳逻辑
- 📜自动化观察:mitmproxy 钩子批量记录多轮交互,找出隐藏参数
- 🧪构造验证:Scapy 复现请求并做变体测试,验证你对结构的假设
- 📚深挖实现:若仍需静态分析,回到 README.md 的 Native analysis / Debuggers 章节选 Ghidra、x64dbg 等工具
| 你的任务 | 从哪个工具开始 |
|---|---|
| 理解一个网站/API 的请求结构 | Burp Suite |
| 批量记录与修改 HTTPS 流量 | mitmproxy |
| 分析非 HTTP 的私有 TCP 协议 | Wireshark |
| 复现、重放、模糊测试协议包 | Scapy |
| 流量中出现的二进制文件要进一步分析 | README.md 的文件识别章节(capa、DIE、FLOSS) |
八、项目资料速查
| 资料 | 说明 |
|---|---|
| README.md | 主清单:在Web and protocols章节查看全部抓包与协议工具 |
| examples/resource-intake/README.md | Scapy 离线示例的运行说明与版本要求 |
| examples/resource-intake/verify.py | Scapy 构造数据包与 PCAP 读写校验代码 |
| examples/resource-intake/verified.json | 示例的验证结果与测试范围快照 |
| CONTRIBUTING.md | 想补充新工具时,按此指南提交建议 |
九、安全与合规提醒
- 只对你拥有或已获书面授权的网络与服务进行抓包测试
- 变体测试与重放不要在生产环境放量,先在离线或测试环境完成
- 抓包中出现的账号、Token 等凭据属于敏感数据,分析结束后及时清理
HTTP 流量嗅探是协议逆向最友善的入口:工具免费、门槛低、反馈直接。从 awesome-reverse-engineering 的这份清单出发,挑一款工具今天就开始抓第一个包吧!🚀
【免费下载链接】awesome-reverse-engineering
Curated reverse-engineering tools and learning resources for binaries, apps, firmware, formats, and protocols.
相关推荐
Wireshark QUIC协议分析:HTTP/3抓包配置
Wireshark QUIC协议分析:HTTP/3抓包配置 为什么需要HTTP/3抓包? 随着互联网的发展,HTTP/3作为新一代超文本传输协议,基于QUIC(
网络通信网络安全Matter协议抓包分析:Wireshark插件与流量解码
在智能家居设备互联互通的场景中,Matter协议(原Project CHIP)的网络通信调试是开发过程中的关键环节。本文将介绍如何通过Wireshark插件解析
物联网智能家居IoT协议嵌入式通信探索Burp Suite增强之道:Awesome Burp Extensions
探索Burp Suite增强之道:Awesome Burp Extensions 在网络安全的世界里, 则是这个明星工具的一个宝藏库,集结了各种第三方扩展,进一
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考