网络网络安全【免费下载链接】scapyScapy: the Python-based interactive packet manipulation program library.项目地址https://gitcode.com/gh_mirrors/sc/scapy点击查看免费下载AGENTS.md是 Scapy 仓库为 AI Agent以及任何在 checkout 中工作的自动化工具准备的操作手册它并不取代CONTRIBUTING.md而是与之配套的日常执行细则。本文基于该文档并结合仓库内 UTScapy 测试解析器、tox.ini、test/run_tests等源码系统讲解 Agent 在 Scapy 仓库中如何写代码、放代码、写测试、跑检查、处理生成文件与上报安全漏洞帮助读者掌握一套可直接照做的协作工作流。定位AGENTS.md 与 CONTRIBUTING.md 的分工AGENTS.md 开篇即明确自己的角色它是 Scapy 贡献指南在具体 checkout 中的运行伴侣operational companion而非替代品。二者分工如下CONTRIBUTING.md定义编码规范、测试要求、AI 辅助报告与 PR 的提交规则等章程AGENTS.md面向在此仓库中工作的 Agent给出可执行的日常约束——代码放哪里、函数怎么声明、异常怎么处理、测试怎么写、命令怎么跑。对 Agent 而言正确的做法是先遵循 CONTRIBUTING.md 的规范再用 AGENTS.md 的细则逐条执行。仓库中.github/skills/目录下还提供了两个技能文件scapy-packet-fields与scapy-security-audit的 SKILL.md分别用于指导包/字段/绑定/层测试的写法以及安全审计流程属于上述两文档的补充素材。Agent 编码准则从代码风格到异常处理AGENTS.md 为 Agent 写代码设定了四条硬性准则遵循既有模式编辑某个文件时模仿该文件已有的代码模式编辑 layer 时模仿scapy/layers/或scapy/contrib/中相似 layer 的写法。不为简单检查声明函数优先保证代码可读性而不是为了减少重复而过度抽象永远不要声明只被调用一次的函数除非它是公开 API。禁止静默吞掉异常不允许try: ... except Exception: pass或裸except: pass。必须捕获具体异常类型如(AttributeError, OSError)。当异常属于意外情况时用scapy.error.log_runtime.debug(...)或对应模块的子 logger 记录例如 j1939 模块用log_j1939.debug(...)只有当确有必要抑制时才在注释中明确说明原因。WARNING 及以上级别只用于 bug 或意外行为。注意热路径开销在 Scapy 核心代码如 scapy/packet.py中要格外在意 CPU 与内存成本——报文初始化是典型的热路径。第 3 条在源码中有直接佐证scapy/error.py 定义了log_runtime logging.getLogger(scapy.runtime)及其频率过滤器这正是文档建议用于记录意外异常的运行时 loggerlog_scapy则是 Scapy 的顶层 logger默认级别为 WARNING。因此用 debug 记录意外异常、用 warning 标记 bug的分级用法与源码实现完全对应。代码放对位置layers、contrib 与 modules 的边界放对位置是 Scapy 贡献的核心原则之一。AGENTS.md 给出了清晰的判定标准layer 的定义一个 layer 是带fields_desc列表的Packet子类。在 scapy/contrib/automotive/autosar/pdu.py 中可以看到标准形态——PDU与PDUTransport两个Packet子类各自携带fields_desc。scapy/layers/与scapy/contrib/的分工layers/放常见网络中出现的协议contrib/放不常见或特定领域协议。依赖方向是单向的scapy/layers/内的代码不得importscapy/contrib/而 contrib 代码可以 import 任意位置。contrib 模块通过load_contrib()加载而不是默认的 layer 加载器。功能归属与协议相关的功能放在对应协议的模块中其他功能可以放在scapy/modules/或scapy/contrib/。这一约束在测试中也可见load_contrib(automotive.autosar.pdu, globals_dictglobals())见 test/contrib/automotive/autosar/pdu.uts演示了测试里如何显式加载 contrib 层。提交、PR 与安全公告消息的硬性要求对于 Agent 编写的 commit message、PR 描述或安全公告AGENTS.md 要求严格遵守以下规则违规可能直接导致报告被驳回使用完全中性的英语只陈述事实禁止使用最高级/夸大措辞superlatives信息保持极简一两句话说明 bug附上复现问题的代码或 pcap可选地给出修复建议到此为止使用指向所讨论代码行的 github 链接假定读者/维护者已经熟悉大部分代码不要铺陈背景不要谈论测试是否通过或覆盖率——这些由 CI 展示必须披露 AI 辅助写作例如在消息末尾注明*This message was written with the help of AI (GPT-5.6-Cyber).*。这条中性语言 最小信息 强制披露的组合本质上是把 AI 生成内容纳入可审计、可复现的流程值得任何用 Agent 协作的开源项目借鉴。添加 UTScapy 测试格式、示例与运行测试框架与文件组织Scapy 的测试套件使用UTScapy编写.uts测试活动campaign统一放在 test/ 目录下。UTScapy 的解析逻辑位于 scapy/tools/UTscapy.py 的parse_campaign_file()逐行解析特殊前缀指令前缀含义源码处理parse_campaign_file#注释整行跳过if line[0] #: continue%声明一个 campaign测试活动标题test_campaign.title line[1:].strip()开启一个新的 test set测试集创建TestSet并加入 campaign声明一个 unit test单元测试必须位于 test set 内创建UnitTest若此时无 test set 则抛出错误~给 campaign/test set/unit test 打关键字调用add_keywords(line[1:].split())*给测试/测试集/campaign 追加注释按层级写入 comments其他单元测试内的 Python 代码行追加到test.test若不在任何测试内且非空则报错AGENTS.md 给出的标准 campaign 骨架如下% Packet regression Build and dissect Round trip ~ protocol_keyword packet Protocol(fieldvalue) decoded Protocol(bytes(packet)) decoded.field value规则要点%、、分别开始一个 campaign、test set 与 unit test~分配关键字单元测试内无前缀的行是 Python 代码最后一个表达式的真值决定测试结果。真实示例可参考 test/contrib/automotive/autosar/pdu.uts其中 Defaults test、 Build test pdu_id等单元测试内直接写p PDU()、assert p.pdu_id 0这样的断言语句。运行测试的命令开发阶段可以直接针对受影响的 campaign 运行例如./test/run_tests -t test/contrib/automotive/autosar/pdu.uts -K tshark -N在仓库根目录、已安装 Python 与 tox 的前提下运行完整可移植测试套件./test/run_tests从 test/run_tests 的实现可以看到无参数时run_tests会调用bash .config/ci/test.sh并设置一组默认排除关键字-K tcpdump -K wireshark -K tshark -K ci_only ...见 test/run_tests以禁用依赖外部软件的测试带参数时则直接转交scapy/tools/UTscapy.py执行。-t指定目标.uts文件-K排除带某关键字的测试如tshark-N禁用交互提示这些参数在 UTscapy 的命令行解析中生效。新增/修改测试的准则不要新建.uts文件只要已存在包含该 layer 测试的文件就向其中添加只有该 layer 从未有过测试时才新建。就近放置新测试应放在与相同或相似功能测试相邻的位置保持上下文相关。检查源码改动flake8 与 mypy 的对齐方式修改代码后要按 CONTRIBUTING.md 的风格与约定自查。AGENTS.md 特别强调flake8 与 CI 的配置对齐flake8 检查scapy/行宽上限88 列并在 tox.ini 的[flake8]段配置了ignore E203, E731, W504, W503以及针对具体文件的per-file-ignores例如scapy/tools/UTscapy.py:E501、scapy/contrib/eigrp.py:E501同时exclude掉scapy/libs/ethertypes.py与scapy/layers/msrpce/raw/*。CI 在Python 3.12下调用 lint 与 type-check 环境tox.ini 中的[testenv:flake8]与[testenv:mypy]分别执行flake8 scapy/与.config/mypy/mypy_check.py linux/win32。由于tox.ini并未为这些环境选定 Python 3.12 解释器需要为 Python 3.12 安装 tox 并显式调用以与 CI 一致python3.12 -m tox -e flake8 python3.12 -m tox -e mypymypy 环境会同时运行 Linux 与 Windows 两种配置mypy_check.py linux与mypy_check.py win32。不要手工编辑生成内容仓库中部分文件是自动生成的手工编辑会被覆盖或破坏生成链AGENTS.md 明确禁止scapy/layers/msrpce/raw/这些文件头部标注This file is auto-generated by midl-to-scapy, do not modify.如 scapy/layers/msrpce/raw/ept.py由 MIDL 接口定义经midl-to-scapy生成禁止直接修改。编码数据文件scapy/libs/bluetoothids.py、scapy/libs/manuf.py、scapy/libs/ethertypes.py中的数据必须通过配套的生成脚本更新——即 scapy/tools/generate_bluetooth.py、generate_manuf.py、generate_ethertypes.py。以 generate_bluetooth.py 为例脚本从公开的 Bluetooth SIG 列表读取数据并直接覆写../libs/bluetoothids.py这与 tox 的apitree环境忽略这些文件、flake8 排除ethertypes.py的做法相互印证说明它们被当作产物而非源码对待。潜在安全漏洞的上报流程若改动过程中发现疑似安全问题按SECURITY.md进行严重性分级与上报可使用.github/skills/scapy-security-audit/SKILL.md技能辅助审计用 AI 研究/发现的安全问题必须附带可复现问题的代码并在 GitHub Advisories 私有仓库中起草包含修复补丁的 PR若确实无法提供复现代码则必须简要说明原因。这条规则与前述提交消息最小化 强制披露 AI 参与一脉相承安全修复的可复现性与可审计性被放在最高优先级。小结Agent 在 Scapy 仓库的合规工作流综合全文一个合规的 Agent 工作流可归纳为动手前读 CONTRIBUTING.md 掌握章程读 AGENTS.md 掌握细则必要时调用.github/skills/中的技能文件写代码遵循既有模式不写一次性的私有函数用具体异常类型捕获并记录log_runtime.debug把新协议放进正确的layers/或contrib/目录并遵守依赖方向写测试向已有的.uts文件就近追加 UTScapy 测试用%///~组织 campaign并以最后一行表达式的真值作为断言本地验证./test/run_tests -t 目标.uts ...跑受影响用例用python3.12 -m tox -e flake8与python3.12 -m tox -e mypy对齐 CI提交中性语言、极简内容、附复现证据、强制披露 AI 辅助绝不手改生成文件安全问题按 SECURITY.md 流程附代码与补丁上报。这套规范的价值在于它把AI 参与开源贡献从模糊的期望落成了可检查、可执行的清单任何 Agent 或人类贡献者按此操作都能与 Scapy 的 CI 与维护流程无缝对接。赞分享网络网络安全【免费下载链接】scapyScapy: the Python-based interactive packet manipulation program library.项目地址https://gitcode.com/gh_mirrors/sc/scapy点击查看免费下载相关推荐Tambo AI Monorepo 开发规范与 AI Agent 协作指南从仓库结构到工程实践的完整解读Tambo AI Monorepo 开发规范与 AI Agent 协作指南从仓库结构到工程实践的完整解读 本指南基于 Tambo AI 开源仓库根目录的 AG人工智能AI AgentAI 应用前端后端MCP 服务Pyrefly 仓库 Agent 协作指南从目录架构到测试规范的完整开发手册Pyrefly 仓库 Agent 协作指南从目录架构到测试规范的完整开发手册 Pyrefly 是一个用 Rust 编写的 Python 快速类型检查器与语言服开发工具静态分析IDE代码质量Expo 仓库的 Agent 开发工作流et CLI、红绿测试与提交规范的完整实践Expo 仓库的 Agent 开发工作流et CLI、红绿测试与提交规范的完整实践 本文基于 Expo 仓库中的 Agent 指令文档 .claude/CLA移动开发前端跨平台原生移动创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
EverOS 工程规范:`__init__.py` 公共门面与显式再导出(re-export)模式实战 EverOS 工程规范:__init__.py 公共门面与显式再导出(re-export)模式实战 【免费下载链接】EverOS One portable memory layer for every AI agent: local-first, Markdown-native, user-owned, and self-evolving across apps, tools, and wo… · 2026/9/23 2:43:55
WXML与WXSS实战:小程序页面渲染与rpx自适应样式完全指南 做了几年小程序开发,我发现一个规律:从 H5 转过来的同事,第一版 WXML 和 WXSS 通常一眼就能看出“出身”——喜欢把整个页面塞进一堆 div,样式用 px 硬调,遇到不同屏宽就手忙脚乱。其实微信小程序的页面渲染方案&#… · 2026/9/23 2:43:55
Akka Classic Cluster Sharding 完全指南:实体分片、状态存储与优雅运维 Akka Classic Cluster Sharding 完全指南:实体分片、状态存储与优雅运维 【免费下载链接】akka-core A platform to build and run apps that are elastic, agile, and resilient. SDK, libraries, and hosted environments. 项目地址: https://gitcode.com/gh_mi… · 2026/9/23 2:43:49
中汽中心项目避坑:3个致命错误导致源码解析失败 中汽中心项目避坑:3个致命错误导致源码解析失败 刚把中汽中心提供的测试代码复制进项目,运行直接报错 ModuleNotFoundError 。别急着怀疑环境,90%的情况是你没看懂那行关键的 import… · 2026/9/23 5:37:35
网络热词cua从哪里来?从拟声词到短视频爆火的传播逻辑 最近刷短视频有点上头。不是因为剧情,而是因为评论区里到处飘着一个词:cua。你看那种变装视频,镜头一转,博主瞬间换了造型,弹幕齐刷刷地刷“cua的一下就变了”;看游戏直播,选手一波连招带走对面… · 2026/9/23 5:37:35
搞定局域网网络流量监控,搞定这道高频面试题 搞定局域网网络流量监控,搞定这道高频面试题 官方文档那几十页的 scapy 或 nmap 手册,你翻了两眼就放弃了?别怪你,那种全是参数解释和底层协议细节的内容,确实让人头大。我当年刚入行时,也被这种“查字典式”的文档折磨得够呛,直到发现其… · 2026/9/23 5:37:35
MySQL InnoDB WAL原理与实战:Redo Log配置调优与可观测性 1. 为什么 WAL 不是“多此一举”,而是 InnoDB 的命脉所在你有没有遇到过这样的场景:一条 UPDATE 语句刚执行完,MySQL 客户端返回了 “Query OK”,你松了口气去查结果——却发现数据没变?或者更糟,服务器突然… · 2026/9/23 5:37:35
D3DHook源码解析:从vtable替换到透视矩阵修改实践 简介:这是一份用 C 编写的 Direct3D 钩子源码,主要解决游戏中透视功能的实现问题。程序通过拦截 D3D 渲染的关键函数,在运行时修改视图矩阵或投影矩阵,从而获得类似透视的视觉效果;适合具备一定 C 与图形学基础、正学习… · 2026/9/23 5:37:23
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29