OpenPuck RF嗅探器实战:puck_sniffer被动抓包+浏览器可视化分析无线协议

发布时间:2026/10/16 2:11:46
OpenPuck RF嗅探器实战:puck_sniffer被动抓包+浏览器可视化分析无线协议
【免费下载链接】openpuckOpensource firmware for NRF52840 Pro Micro that copycats the Steam Controller 2 Puck and adds an Xbox and Switch mode项目地址https://gitcode.com/gh_mirrors/op/openpuck点击查看免费下载OpenPuck RF Snifferpuck_sniffer是 OpenPuck 内置的一个 2.4 GHz被动式无线嗅探器它只监听、绝不发射因此不会干扰真实 Valve Steam Controller 2 Puck 与手柄的配对链路。它把嗅探到的每一帧数据包实时推送到浏览器可视化页面让你零代码门槛地看懂这套无线协议 为什么需要一个被动RF 嗅探器OpenPuck 是一个跑在 nRF52840 Pro Micro 上的开源固件用于复刻 Steam Controller 2 的无线接收器puck并额外提供 Xbox / Switch 等模式。它的核心难点之一是逆向还原puck 与手柄之间的 2.4 GHz 私有协议。puck_sniffer模块就是为这个目标设计的抓包工具位于 puck_sniffer/ 目录被动监听只接收不发射绝不干扰正在配对的设备自动跟踪会话真实 puck 会在公共信道上广播E1信标帧其中携带会话地址与频道嗅探器读到后自动调谐双向收包学习并持久化绑定把学会的会话参数写入 flash/sniffbonds.bin按ibex_uuid索引下次开机自动蹲守无需手动操作浏览器实时可视化通过 WebUSB 把帧流推送到网页支持过滤、导出 JSON/文本协议细节的完整描述见 docs/PROTOCOL.md抓包器自身的说明见 puck_sniffer/README.md。开始前的硬件清单准备抓包只需三样东西第二块nRF52840 开发板与烧录 OpenPuck 相同的 Pro Micro / Feather 均可——注意不是你的 OpenPuck 板子本身真实的 Valve SC2 puck 手柄且已配对可用支持 WebUSB 的浏览器Chrome 或 Edge 抓包时请把 OpenPuck 开发板拔掉它自己也会广播信标会污染公共信道 ch2 的接收。一键烧录嗅探器固件烧录命令与 OpenPuck 固件流程一致固件源码puck_sniffer/puck_sniffer.ino复用同一套经过 CRC 验证的射频配置 puck_sniffer/radio.cpparduino-cli compile -b adafruit:nrf52:feather52840 \ --build-property build.extra_flags-DNRF52840_XXAA {build.flags.usb} \ --upload -p PORT puck_sniffer烧录成功后板子会以 USB 标识28DE:534E OpenPuck Sniffer枚举。如果端口不自动复位和烧 OpenPuck 一样走手动 DFU双击复位键即可。最快打开浏览器可视化页面WebUSB 要求安全上下文所以file://协议直接双击打开的sniffer.html是连不上设备的。本地起一个静态服务即可cd docs python3 -m http.server然后浏览器访问http://localhost:8000/sniffer.html页面源码就在 docs/sniffer.html点击Connect sniffer选择OpenPuck Sniffer。⚠️ Linux 用户如果连接失败多半是 udev 权限问题可按 docs/WEBUSB_LINUX.md 配置规则文件后重插设备。连接成功后确认页面上rx计数在上涨说明帧流已经到达浏览器 ✅三步抓包从 Lock 到 Power-cycle这是整个流程的核心顺序不能乱查询目标手柄的 ibex_uuid用 pairtui/ 下的 USB 配对工具读取已连接槽位的ibex_uuid例如EF7171B4Lock在页面lock ibex输入框填入该 uuid点击Lock如果bond状态直接显示… camped说明嗅探器已经认识这只手柄直接跳到第 4 步否则状态为ACQUIRE正在 ch2 上等待该槽位的E1信标● Start Cap开始录制然后给手柄断电重开长按电源约 2 秒关到再开。一旦捕获到E1嗅探器锁定会话、把 bond 写入 flashbond统计显示1 learned · camped之后每次抓包只需重连会话已学习的情况下页面自动进入CAPTURE (auto-camped on learned bond)。此时只要给手柄断电重开从第一个包起C→P计数就开始爬升晃动摇杆 / 触控板保持流量在 Steam 里做你想抓的操作调亮度、关机……最后■ End Cap → Download提示手柄如果重新配对过空中地址会变点一下Forget bonds清空学习库从下一个E1重新学习即可。浏览器过滤栏从海量输入帧里捞针真实链路上 99% 的流量是例行输入——49 字节的0xF1输入应答帧和裸0xE3轮询。可视化页面提供了完整的过滤栏抓完之后随时可以改条件重新渲染过滤器作用hide input/polls一键丢弃 99% 的例行流量只剩命令、特性应答、信标和异常帧dir按方向过滤P→Cpuck→手柄LED/关机/亮度命令走这里或C→P手柄→puck输入电量/遥测op精确匹配操作码如f1、e3len按帧长过滤≠ 49 (non-input)是找电量应答和特性响应的关键条件hex按载荷十六进制子串匹配如9f、2d抓电量的标准姿势先勾选hide input/polls dir 选C→P然后在 Steam 里打开手柄设置页让 Steam 主动轮询电量——这时会出现一条 len 49 的C→P长帧携带 type-04 TLV抓下它即可 导出数据与状态栏速读点击Download JSON或Download text会把 Start Cap 到 End Cap 之间的完整记录导出为sniff-时间戳.json/.txt供离线分析或提交参考。页面顶部状态栏建议关注几个指标linkACQUIRE扫描中还是CAPTURE已锁定会话E1 advertises从E1帧解析出的会话频道 / 地址byte 9 频道bytes 13–16 basebyte 17 prefixdrops设备端环形缓冲满导致的丢帧数0表示无损bond已学习的 bond 数量与当前蹲守状态遇到问题两个快速排查点断电重开后C→P不涨点Survey ch2在表里看op e1的行正常应能看到你手柄 uuid 的小端字节EF7171B4→… b4 71 71 ef …。如果只看到别的uuid说明在重连的是 OpenPuck 或其它槽位检查你的 OpenPuck 板子是否已拔掉只在 ch2 看到E1/E2永远等不到0xF_应答说明嗅探器没能蹲守到会话。从一条真实的E1帧里读出会话参数base 4 字节、prefix、channel填入pin session输入框格式b0 b1 b2 b3 pfx ch点Pin强制锁定可完全绕开自动捕获——这是真实 puck 的E1偏移与 OpenPuck 不一致时最可靠的路径总结puck_sniffer用一块廉价的 nRF52840 板子 一个浏览器页面就把逆向私有 2.4 GHz 协议这件听起来高深的事变成了烧固件 → 锁 uuid → 断电重开手柄 → 导出 JSON的四步操作。被动设计让它可以安全地旁路监听真实设备学习式 bond 蹲守机制让重复抓包变得几乎零操作而浏览器端的方向 / 操作码 / 帧长 / hex 过滤则是从输入洪泛中定位关键帧的利器。相关源码与文档puck_sniffer/README.md、docs/sniffer.html、docs/PROTOCOL.md。赞分享【免费下载链接】openpuckOpensource firmware for NRF52840 Pro Micro that copycats the Steam Controller 2 Puck and adds an Xbox and Switch mode项目地址https://gitcode.com/gh_mirrors/op/openpuck点击查看免费下载相关推荐视频嗅探器浏览器哪个好用MediaGo 中浏览器扩展、内置浏览器与手动抓包的全场景选型指南视频嗅探器浏览器哪个好用MediaGo 中浏览器扩展、内置浏览器与手动抓包的全场景选型指南 一句话结论 普通网页优先用 Chrome/Edge 视频嗅探插件音视频桌面应用后端深度评测猫抓浏览器资源嗅探工具实战表现分析深度评测猫抓浏览器资源嗅探工具实战表现分析 作为一名长期关注网络资源管理工具的技术爱好者我近期深度体验了猫抓这款基于Chrome平台的资源嗅探扩展。经过多场音视频Faiss 向量检索5 分钟搭好知识图谱实体链接Faiss 向量检索5 分钟搭好知识图谱实体链接 百万级实体做知识图谱链接时提要和每个实体逐一比对算不完、内存先炸。Faiss 向量检索就是解法建一次索机器学习搜索引擎向量数据库上一篇为什么 ts-reset 拒绝把 Boolean() 改造成类型谓词false 分支过度窄化与单侧类型谓词的等待下一篇Joplin 插件开发实战基于官方模板理解插件入口、manifest 与 JPL 打包构建全流程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考