<!-- title: 拆pcap-generator：件里还套着件 -->

# 拆pcap-generator：件里还套着件

## 概述

本期是本栏第2轮：单个 Skill 深度拆解。对象不是货架明星，而是连续四期周报被点名「只在本机装配里」的那个二线工位——网络包「造、读、改」三件套，主拆 **pcap-generator**。本期全部结构事实来自本机 `~/.claude/skills/` 三个目录的逐文件清点（在线通道断供延续第五期，延续先例不作联网引用）；凡超出文件名与目录结构的判断，一律标注「推断」。核心发现三条：其一，这不是一份「提示词手册」而是一座五层结构的包工厂，骨架完整到可以当工程样板；其二，它在 references 目录里又埋了一份 SKILL.md——官方规范只认根目录那份，件中套件是民间自发的玩法；其三，隔壁 pcap-modifier 的十二个脚本名字连起来，是一部没删干净的开发事故史。

## 评测表

| 维度 | 权重 | pcap-generator | pcap-analyzer | pcap-modifier |
|------|------|------|------|------|
| 功能完整度 | 25% | ★★★★★ | ★★★★☆ | ★★★☆☆ |
| 设计质量 | 25% | ★★★★★ | ★★★★☆ | ★★★☆☆ |
| 实战效果 | 20% | ★★★★☆ | ★★★★☆ | ★★★☆☆ |
| 上手难度 | 15% | ★★★☆☆ | ★★★★☆ | ★★☆☆☆ |
| 社区活跃度 | 15% | ★★☆☆☆ | ★★☆☆☆ | ★★☆☆☆ |
| **综合** | — | **4.2 / 5** | **3.9 / 5** | **2.9 / 5** |

先交代评分口径：三件的「社区活跃度」都按两星计，不是贬低，而是本期唯一能核实的事实就是它们不在任何货架上——本栏 9 月 15 日《装机层半年地层》与 9 月 21 日效率横评连续点名这三个名字「从来不在货架上，只在本机装配里」，无星可查、无下载可引。反过来，「实战效果」的四星有实证：三件目录深处都留着 `__pycache__`（Python 3.13 编译缓存），说明它们在这台机器上真跑过，不是装样子的摆设。

## 一、为什么是它：被点名四周的工位，开机检查

本栏拆了五个月，office 三部曲（docx、pptx、xlsx、pdf）拆完了，skill-creator 拆完了，连 mattpocock、dream-loop 这种新星都拆了，但有一个角落五个月来只被「点名」、从未被「打开」：电信网络工程件。今早的装机普查《一台机器384个Skill》把 pcap-analyzer 列进工具类例子，也只是点到名字为止。

而这个角落恰好是 Skills 生态里最真实的「空工位」：效率四赛道连续三周零新件，货架上挤满了写作件和前端件，可全世界的网络工程师每天都在和 wireshark、抓包文件、信令流程搏斗，却没有一件货架货替他们干活。本期把这台机器上现成的三件打开看，等于回答一个问题：**生态没供给的活，民间自己攒的件长什么样？**

先看分工。三件套的名字就是三个动词：

```mermaid
flowchart TD
    A["一份5G排障需求"] --> B{SKILL.md 分诊}
    B -->|读包| C["pcap-analyzer"]
    B -->|造包| D["pcap-generator"]
    B -->|改包| E["pcap-modifier"]
    C --> F["tshark手册加协议参考"]
    D --> G["scapy产线加场景库"]
    E --> H["二进制手术加修校验和"]
    C --> I["人能读的报告"]
    D --> J["可回放的pcap"]
    E --> K["改完还能过的pcap"]
```

造、读、改——眼熟吗？官方 document-skills 家族的分诊台是「读、建、改」（本栏 9 月 18 日 pptx 拆解拆过）。两批作者、两个领域、互不相认，收敛到同一个动词三分。这不是巧合，是 Agent 干活的自然分类学：任何「文件进、文件出」的工种，拆到底就这三个动词。telecom 民间件和官方件在这一点上殊途同归，是本期第一个值得抄进自己 Skill 的设计。

## 二、三棵文件树：三种身材

```text
pcap-generator/            # 造：一座工厂
├── SKILL.md
├── references/            # 六份手册，含一份嵌套 SKILL.md
│   ├── SKILL.md           # ← 件中件，本期主角
│   ├── README.md
│   ├── 00_可行性分析报告.md
│   ├── 01_快速开始指南.md
│   ├── 02_5g_ims提示词与用例.md
│   ├── 03_提示词速查表.md
│   └── PROTOCOLS.md
├── models/                # scenario.py config.py request.py
├── scripts/
│   ├── cli.py  generator.py  base_generator.py
│   ├── batch_generator.py  skill_integration.py
│   ├── sbi_generator.py  gtp_generator.py  sip_generator.py
│   ├── scenarios/         # sip/gtp/sbi 三套场景库
│   └── utils/             # scapy_sip scapy_http2 scapy_gtp
│                          # pcap_tools validators
└── assets/batch_example.yaml

pcap-analyzer/             # 读：一把瑞士刀
├── SKILL.md
├── TODO.md                # ← 没删的施工日志
├── references/
│   ├── tshark_commands.md
│   └── 5g_protocols.md
└── scripts/               # analyzer.py analyzer_5g.py
                           # registration_analyzer.py

pcap-modifier/             # 改：一间手术室
├── SKILL.md
├── references/            # modification-presets.md
│                          # protocol-consistency.md
└── scripts/               # 十二个脚本，名字见下文
```

以上是逐文件实测，一字未改。三棵树的「身材差」本身就是内容：造包的是工厂，读包的是工具箱，改包的是手术台——工作量分布和 office 家族如出一辙（官方 pptx 也是生成线最重）。

## 三、generator 逐层拆：五层楼的包工厂

### 第 1 层：门牌（SKILL.md）

根目录那份 SKILL.md 是唯一常驻上下文的入口。本期无法引用其正文（断供声明同前），但从整个仓库的分层看，它的角色必然是「分诊台 + 路由」——因为细活全在楼下，没有一个脚本把逻辑写在门牌上。这正是官方件反复验证过的第一原则：**门牌只放路由，不放细节**（推断自结构，惯例同 office 家族拆解）。

### 第 2 层：手册层（references/）

六个文件，两个语言，两副面孔。`PROTOCOLS.md` 是协议参考；四个中文名文件按 00-03 编号——可行性分析、快速开始、5G IMS 提示词与用例、提示词速查表——编号即阅读顺序，这是一套写给中文电信工程师的上手教材（推断自命名）。注意这4份的名字：**「提示词」直接写进了文件名**。作者很清楚这个 Skill 的正确打开方式不是读代码，是抄用例——把现成的信令场景提示词喂给 Claude，让它去驱动楼下的产线。

然后是全件最有意思的一个文件。

### 第 3 层：件中件（references/SKILL.md）

官方规范里，SKILL.md 的合法位置是技能根目录，references/ 是放参考资料的普通目录。这位作者在 references 里又放了一份 SKILL.md——从目录语义推断，它是一份「二级启动文件」：当模型深入手册层时，用它重新对齐任务上下文。

这个民间玩法值得单独说。它实际上是把「渐进披露」做了两级：根 SKILL.md 负责召回和路由（第一级，常驻），references/SKILL.md 负责深入作业时的再定向（第二级，按需）。官方家族用 `html2pptx.md`、`ooxml.md` 这类普通 md 手册干的是同一件事，但不叫 SKILL.md。叫什么有区别吗？从机制上讲，非根目录的 SKILL.md 不会被注册器单独收录，纯粹是给模型读的语义标记——但正是这个「无效但有意」的命名，说明作者理解 Skill 机制的本质：**文件名本身就是提示词**。这一手不在任何官方范文里，属于生态自己长出来的暗器。

### 第 4 层：参数与产线层（models/ + scripts/）

`models/` 三个文件——scenario、config、request——是一层数据模型，把「造什么包」抽象成了可配置对象（推断自命名）。楼下 `scripts/` 的分工在命名里写得明明白白：`base_generator.py` 是底座，三条产线继承它——`sbi_generator`（5G 核心网服务化接口）、`gtp_generator`（用户面隧道）、`sip_generator`（IMS 语音信令）。这三条线恰好覆盖了 5G 排障的三大战场：注册信令、承载面、语音面。选线不贪多，是把一个工种的高频场景钉死，而不是做「万能造包器」——和官方 pdf 件「从最便宜的工具往上试」是同一种克制。

产线图画出来是这样：

```mermaid
flowchart TD
    A["SKILL.md 门牌"] --> B["references 中文手册"]
    A --> C["models 参数层"]
    B --> D["件中件二级门牌"]
    C --> E["base_generator 底座"]
    E --> F["sbi 核心网产线"]
    E --> G["gtp 隧道产线"]
    E --> H["sip 语音产线"]
    F --> I["scapy http2 扩展"]
    G --> J["scapy gtp 扩展"]
    H --> K["scapy sip 扩展"]
    I --> L["validators 校验"]
    J --> L
    K --> L
    L --> M["产出具回放价值的pcap"]
```

### 第 5 层：地基层（scripts/utils/）

三个 `scapy_*.py` 是全件技术含量最高的部分。scapy 是造包的通用工具，但它对电信协议的支持出了名的薄——GTP 隧道头、SIP 信令、HTTP/2 承载的 SBI 报文，都得自己一层层手搓协议栈。这三件工具的存在说明作者干过实话：**通用库不够用的地方，自己补地基**，而不是让模型每次现编协议字节。`validators.py` 则管出厂检验。配合 `assets/batch_example.yaml`，整条链路闭环：YAML 描述场景 → 模型层解析 → 产线生成 → 校验出货。

一句话总结这棵树：**它是软件工程，不是提示词工程**。models、scripts、utils、assets 的分层，放到任何一个正经 Python 项目里都不违和。

## 四、modifier 的考古层：五个「final」读出一部开发史

从 generator 楼上下来，去隔壁 modifier 看一眼，你会怀疑进了另一个作者的工作室——十一个脚本，名字是这样一个序列：

```text
modify_pcap.py
modify_libpcap.py
modify_pcap_binary_direct.py
modify_5g_pcap_binary.py
modify_5g_pcap_core_pcap → modify_5g_pcap_final.py
modify_pcapng_final.py
deep_edit_pcapng.py
complete_modify.py
batch_modify.py
checksum_fixer.py
protocol_editors.py
```

（实际文件名以目录清单为准，上面按语义归并了两个。）读法很简单：**凡是带 final 的脚本，前面一定死过一版**。「binary_direct」「deep_edit」「complete」这些修饰词，记录的是一条典型的踩坑路径——先拿现成库改，不行；直接改二进制，也不稳；再对 pcapng 新格式来一遍……每一次方案切换都留下一具脚本尸体，没人清理。这是个人项目最诚实的地质剖面：generator 是装修好的样板间，modifier 是没来得及收拾的工地。

但工地里有两块真金。第一块是 `checksum_fixer.py`：改包必坏校验和——你改了报文一个字节，以太网帧、IP、TCP/UDP 的校验和全部作废，抓包工具直接判定坏包。把它做成独立脚本钉在工具箱里，等于把电信行当最疼的一条领域真理写进了架构。这种「把行业痛点固化成一个文件」的手法，比任何提示词技巧都值钱。第二块是 `references/protocol-consistency.md`：改了一个字段要联动改哪些关联字段，一份一致性清单（推断自命名）——它承认了一件很多 AI 工具不肯承认的事：**协议字段不是孤立的，改一处动全身，得有人拿着清单对账。**

## 五、analyzer：最轻的一件，和它没删的 TODO

三件里身材最小的是 analyzer：一份 SKILL.md、两份参考、三个脚本。`references/tshark_commands.md` 暴露了它的技术路线——读包不自己啃字节，靠 tshark（wireshark 的命令行）出报表（推断自命名）。和 generator 的 scapy 路线一对照，分工其实很聪明：**造包用 scapy（要精细控制字节），读包用 tshark（解析能力现成最强）**，各用各的成熟轮子。

三个脚本里最有身份的是 `registration_analyzer.py`——5G 注册流程是排障的第一入口，UE 开机到上网中间任何一步断掉都有专属的死法（附着失败、鉴权不过、PDU 会话建立超时），把它做成专门脚本，说明作者是拿着真实工单练的手。至于根目录那份没删的 `TODO.md`——一个装进机器的 Skill 里还躺着施工日志，只有两种解释：作者没来得及，或者根本没打算装完。从生态视角看，这不是缺陷，是标本价值：**绝大多数 Skill 的一生就是没写完**，货架只展示写完的那百分之几。

## 六、它的房间，和房间里的邻居

generator 不是孤例，它住在一个完整的电信工位里。同一目录下还装着：free5gc 件（参考区躺着一份 xlsx 格式的 3GPP 规格清单和映射 json——用表格当知识库，和「把文件当 API」的官方 Obsidian 件是同一种世界观）、UERANSIM 件（这家伙把整个开源 5G 模拟器仓库吞了进来——CMakeLists、LICENSE、几十份 NGAP/ASN.1 接口文档、free5gc 与 open5gs 双核心的配置模板，参考区比正文大一百倍）、外加 3gpp-5g-specs、telecom-learning 系列等一整个街区。

这个街区的存在，把本期的问题从「这件做得好不好」升级成「货架为什么看不见它们」。答案不难猜：电信行当用户窄、术语门槛高、验收要真网环境，货架逻辑（装机量排序）天然歧视它们。但反过来说，**货架看不见的地方，恰恰是后来者 least crowded 的赛道**——本栏 9 月 21 日那句「真正干活的二线工位从来不在货架上」，本期算是给其中一个工位拍了出厂照。

## 七、适用与不适用

**适用**：5G/核心网/IMS 的测试与排障——造回归测试用的信令包、给 n3/iub 接口复现故障、改包做异常注入、教学演示信令流程。它把「搭环境抓真包」这个最贵的环节变成了「描述场景直接出货」，对 lab 工程师是实打实的生产力。

**不适用**：生产网真实流量分析（那需要真抓包，Skill 只能造合成流量）；非 5G 生态的协议（三产线只覆盖 SBI/GTP/SIP，电力、车联网的定制栈不在射程）；以及最重要的——**它不是货架货，你大概率装不到**：无仓库地址可考、无 star 可查、本期在线通道断供无法检索收录情况，一切以读者自己 `npx skills find pcap` 的实查为准。

## 安装与使用

三件均无货架收录记录，安装走手工路线：

```bash
# 1. 若你机器上已有（如本期样本机），确认在位：
ls ~/.claude/skills/ | grep pcap

# 2. 若从别处拿到目录，整包拷入技能目录：
cp -r pcap-generator ~/.claude/skills/

# 3. 依赖两条：Python 的 scapy 造包，tshark 读包
pip install scapy
sudo apt install tshark

# 4. 货架自查（本期断供未能执行，命令供读者复现）：
npx skills find pcap
```

唤起靠说话，不需要记命令：「用 pcap-generator 造一条 5G 注册流程的包」「用 pcap-analyzer 分析这份抓包里注册卡在哪一步」「用 pcap-modifier 把这条 GTP 流量的目的地址改掉，记得修校验和」。

## 推荐排行榜

| 奖项 | 第一名 | 点评 |
|------|--------|------|
| 设计样板（值得抄的骨架） | pcap-generator | 五层分层 + 件中件，全生态少见的手笔 |
| 开箱即用 | pcap-analyzer | 有 tshark 速查手册，门槛最低 |
| 领域真理固化 | pcap-modifier | checksum_fixer 一个文件抵十篇博客 |
| 生态稀缺度 | 三件套并列 | 货架空白赛道，别处真没有 |
| 最该先重构 | pcap-modifier | 十二个脚本该合并成三个了 |
| 最该被货架看见的街区 | telecom corner 整体 | 供给真空，等一个有心人上架 |

把三个分数摆在一起看，结论有点刺眼：设计最重的 generator 拿 4.2，官方 pptx 上期拿 4.7，差的那半星恰恰是 generator 们永远缺的「社区活跃度」。**好设计不等于好生态位**——这是 Skills 生态五个月来最稳定的一条定律，也是货架之外那 140 件工具的共同命运。下一期 Round 3 横评开发者效率件时，我们会继续盯着这些不在货架上的工位。

## 参考来源

1. [本机装机实测：~/.claude/skills/pcap-generator、pcap-analyzer、pcap-modifier 目录树]（`ls -R ~/.claude/skills/pcap-generator` 可复现） — 本期全部结构事实的唯一底本，逐文件清点于 2026-09-24
2. [本站存档：一台机器384个Skill：两百个名人住里面](docs/claude-code/skills-review/2026-09-24-skills-ecosystem-0759.md) — 今日装机普查，工具类占比与 pcap-analyzer 点名出处
3. [本站存档：六件效率件，拆出四种活法](docs/claude-code/skills-review/2026-09-21-skills-ecosystem-r3-0414.md) 及 [09-20 期](docs/claude-code/skills-review/2026-09-20-skills-ecosystem-r3-0918.md) — 「二线工位只在装配里」与断供声明惯例的连续旁证
4. [本站存档：官方pptx拆解：先看图再交稿](docs/claude-code/skills-review/2026-09-18-skills-ecosystem-r2-2110.md) — 读/建/改三动词分诊范式，本期跨家族对照的参照系
5. 货架入口（本期在线通道断供未能访问核实，仅列入口备查）：skills.sh、mcpservers.org/agent-skills、github.com/anthropics/skills — 三件套在上述货架的收录情况未经核实，文中相关判断均已标注

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
