at0m-b0mb/Specter-FlipperZero

GitHub: at0m-b0mb/Specter-FlipperZero

利用 Flipper Zero 内置 NFC 芯片被动检测活动 13.56 MHz 读卡器的反窃听射频扫描工具,无需额外硬件。

Stars: 39 | Forks: 1

Specter — NFC reader & skimmer bug-sweep for Flipper Zero

Specter 👻

扫描那些你看不见的读卡器。

Flipper Zero Onboard NFC No extra hardware ufbt MIT

Specter 将你的 Flipper Zero 变成一个口袋大小的反窃听窃听扫描工具,专用于检测 处于活动状态的 13.56 MHz NFC 读卡器。它被动监听处于开启状态的 读卡器持续发出的射频场——无论是偷偷植入支付终端的盗刷器、门板后的隐蔽 读卡器,还是用胶带粘在桌底的无赖记录器——并将其转化为一个实时的 EMF 风格测量仪,随着你的靠近,盖革计数器般的咔哒声会逐渐急促。它绝不进行任何传输。

读卡器原本是不可见的。Specter 让它们无所遁形。

## 📟 在 Flipper 上

Sweep — all clear   Sweep — active reader found   Menu   Settings

Sweep — quiet, scanning  ·  Reader! — active field locked on  ·  Menu  ·  Settings

## ✨ 功能特性 - 📟 **EMF 仪表** — 一个精美的模拟风格扫频仪表。指针实时追踪 **FIELD %**,峰值保持标记会记录下最强的一次触发,表盘顶部是 **红色的“高危区”**。在安静状态下,实时波形会描记出本底噪声。 - 👻 **读卡器锁定** — 一旦感应到活动读卡器的载波,屏幕边缘会立刻出现 **警报边框**,表盘周围会有光环脉冲,状态栏会翻转为 **`● ACTIVE READER`** 并显示距离读数(`FAINT → NEAR → CLOSE → STRONG`)。 - 🔊 **盖革音效反馈** — 可选的咔哒声会**随着射频场变强而加快**,这样你就可以把 Flipper 放在口袋里扫过表面,*听*着自己越来越接近目标。此外,在接触到目标时还会有品红色 LED 灯及震动提示。 - 🎚️ **可调灵敏度** — 包含 **High / Medium / Low**(高 / 中 / 低)本底噪声选项,你可以用它追踪微弱的远处读卡器,或者只标记就在眼皮底下的强信号读卡器。 - 🔌 **零额外硬件** — 直接使用 Flipper **内置的 ST25R3916 NFC 芯片**。无需烧录、无需接线、也不需要开发板。只需安装并开始扫描。 - 🕶️ **仅监听且保护隐私** — Specter **绝不发射射频场**,也绝不与读卡器通讯。它只能感知到读卡器是否*存在*。不会传输任何数据,不会记录到设备外,更不会向外发送信息。 ## 🧠 工作原理 每一个处于开启状态的 NFC 读卡器都会持续不断地**向空气中发送 13.56 MHz 载波信号**,等待 卡片被唤醒。你看不见它,但 Flipper 的 NFC 芯片可以做到:**ST25R3916** 具有一个硬件级的 **外部场检测器**(也就是让 Flipper 能够模拟卡片并由此得知读卡器何时在与它通讯的同一电路)。 Specter 会让芯片驻留在仅检测模式,并**每秒对那个“是否存在场?”的标志位采样数百次** — 且全程绝不开启自身的载波。 ``` flowchart LR R["🔍 Hidden 13.56 MHz reader / skimmer
(constantly polling its field)"] -- "RF carrier" --> A subgraph FLIP["Flipper Zero — Specter.fap"] A["ST25R3916 NFC chip
external-field detector"] --> S["Sampler thread
~500 samples/s"] S --> M["Field strength = carrier duty-cycle
+ peak-hold + contact count"] M --> G["EMF gauge + live waveform"] M --> K["Geiger clicks · LED · vibe"] end ``` **信号强度 = 占空比。** 在一个极短的时间窗口内,Specter 会测量载波存在的时间比例, 并将其平滑处理为 **FIELD %**。直接贴在 Flipper 上的读卡器会使仪表指针爆表; 较远处的、较弱的或间歇性轮询的读卡器则只会让指针轻微摆动。该百分比控制着指针的摆动、 距离提示词以及咔哒声的频率 —— 因此它的表现就像是一个**专用于检测读卡器的窃听探测器 / 盖革计数器**。 ## 🚀 安装说明 不需要开发板,也不需要烧录固件 —— 它只是一个单独的 `.fap` 文件。 **方式 A — 预编译的 `.fap` 文件(最简单)** 1. 从 [**Releases**](https://github.com/at0m-b0mb/Specter-FlipperZero/releases) 页面下载 `specter.fap`。 2. 打开 **qFlipper**,将文件拖放到 `SD Card / apps / NFC /` 目录下。 3. 在 Flipper 上依次进入:**Apps → NFC → Specter**。 **方式 B — 使用 [`ufbt`](https://github.com/flipperdevices/flipperzero-ufbt) 自行构建** ``` # 一次性 python3 -m pip install --upgrade ufbt # 从 repo 根目录,通过 USB 连接你的 Flipper: ufbt # build specter.fap into ./dist ufbt launch # build, upload to the Flipper and open it ``` 生成的 `.fap` 文件会存放在 `dist/specter.fap`;`ufbt launch` 会将其复制到 `apps/NFC/` 并自动为你启动该应用。 ## 🎮 使用方法 1. 启动 **Specter** 并打开 **Sweep**。 2. 将 Flipper 平放,**缓慢地**将其滑过你要检查的物体表面 —— 如刷卡终端、门禁读卡器、 ATM 插卡口下沿、包裹或办公桌。 3. 观察 **FIELD %** 并仔细听咔哒声: - **安静 / 平坦的波形** → 范围内没有活动的读卡器。你是安全的。 - **指针攀升,咔哒声加速** → 你正在靠近一个发射源。继续向峰值方向移动。 - **`● ACTIVE READER` + 警报边框** → 此处存在一个活动的 13.56 MHz 读卡器。距离提示词 (`FAINT → STRONG`)会告诉你它有多近。 4. 随时按下 **OK** 键即可 **reset**(重置)峰值保持和接触计数器,开始一次全新的扫描。 5. 在 **Settings** 中进行调节 —— 调高灵敏度可以追踪微弱的读卡器,调低灵敏度则可以忽略微弱的背景信号。 ## 🔬 客观的局限性 - **仅支持 13.56 MHz (HF)。** Specter 只能感应 **NFC 频段** —— 即非接触式支付盗刷器、 大多数现代门禁读卡器、交通卡和酒店房卡读卡器所使用的频段。它 **无法** 检测到 **125 kHz (LF)** 读卡器(老式的 HID Prox / EM4100 门禁面板);因为 Flipper 的低频通道没有同等的场检测位。 - **它感应的是读卡器的 *载波*,而不是它读取的内容。** Specter 只能告诉你 *这里有一个活动的读卡器以及大概有多近* —— 它不会对读卡器的任何操作进行解码、识别或捕获。 - **信号强度是相对值,未经校准。** `FIELD %` 和距离提示词只是用于扫描的“变热 / 变冷”的相对参考指南, 而不是以厘米为单位的测量距离。 - **读卡器必须处于通电和轮询状态。** 只有在真实刷卡时才会唤醒的休眠盗刷器,或者被屏蔽的设备,可能会保持静默。 没有探测到读数并不能保证绝对不存在。 - **同一时间只能使用一个无线电。** Specter 在扫描时会接管 NFC 芯片,因此请先关闭其他所有 NFC 应用 (如果其他应用占用了无线电,它会提示 *NFC unavailable*)。 ## ⚖️ 法律与道德声明 Specter 是一款 **防御性的、仅用于监听** 的工具 —— 它 **绝不进行传输**,绝不发射射频场,也绝不与 读卡器发生交互。请仅使用它来扫描 **你自己** 的 POS 结账区、房门、办公桌或个人物品,或者是你**获得明确授权** 进行评估的硬件设备。你需要对自己的使用方式负责。请了解并遵守你所在地的法律法规。 ## 🗺️ 路线图 - [ ] 重启后依然保持灵敏度 / 声音 / 震动 / LED 设置 - [ ] 将带有时间戳的检测记录(“Logbook”)保存到 SD 卡 - [ ] 在息屏状态下进行后台扫描 + 仅有蜂鸣音的“tricorder”模式 - [ ] 可调节的检测器硬件阈值,以实现更精细的范围控制 - [ ] 研究将基于 LF (125 kHz) 线圈的读卡器感应作为独立模式 ## 🗂️ 项目结构 ``` Specter-FlipperZero/ ├── application.fam # Flipper app manifest (category: NFC) ├── specter.c / specter_i.h # app entry, wiring, alert feedback ├── helpers/ │ └── field_detector.{c,h} # worker thread: samples the NFC field-present bit ├── views/ │ └── sweep_view.{c,h} # the EMF gauge / waveform / alarm screen ├── scenes/ # scene-manager navigation (start · sweep · settings · about) ├── icons/ # 1-bit Flipper icons (generated) ├── images/ # banner + screen mockups (generated) └── tools_gen_*.py # regenerate icons / mockups / banner ``` ## 🙏 致谢 - 由 **[at0m-b0mb](https://github.com/at0m-b0mb)** 开发。 - 属于 Flipper 安全工具家族的一部分:**[Argus](https://github.com/at0m-b0mb/Argus-FlipperZero)**(Wi-Fi deauth / evil-twin 监视器)、**[GhostTag](https://github.com/at0m-b0mb/GhostTag-FlipperZero)**(BLE 防跟踪猎手)以及 **[Cerberus](https://github.com/at0m-b0mb/flipper-cerberus)**(Sub-GHz RF 射频监视器)。 - 强力驱动源自 [Flipper Zero 固件](https://github.com/flipperdevices/flipperzero-firmware) NFC HAL(`furi_hal_nfc` 场检测) + [ufbt](https://github.com/flipperdevices/flipperzero-ufbt)。 ## 📄 许可证 [MIT](LICENSE) © 2026 at0m-b0mb
标签:Flipper Zero, NFC, RFID检测, 反窃听, 客户端加密, 物理安全, 物联网硬件, 电磁场检测