搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

lizTheDeveloper/flyover-scrub

安全

从音频和视频中消除人耳听不到的飞机多普勒痕迹以保护录音地点,并附带参考攻击评分器来检验防御效果。

298
26
Python
MIT
创建于 4 天前

项目介绍

飞机飞过头顶时留下的多普勒音调人耳听不见,却能从录音里提取出来,再和公开的 ADS-B 航迹匹配,从而推断出录音地点。flyover-scrub 是一个防御工具:它重写音频或视频文件,让这些曲线不再携带可用的位置信息。仓库同时提供攻击评分器的独立实现,使防御效果可以被测量,而不是只靠宣称。

处理发生在默认 20–2000 Hz 保护频段的 STFT 分箱上。距局部底噪 12 dB 以内的背景分箱会用同功率的新随机相位噪声重新合成;长而缓慢滑动的窄带脊线替换为底噪级噪声;语音、音乐、瞬态等其他前景原样保留。电平校正对每个频率只用一个整文件数值,因此不会重新引入随时间变化的结构。两种模式都会报告电网嗡声(ENF),默认也会将其清除。

它面向发布自己录音、希望降低被定位风险的人。包内的 flyover_scrub.attack 是参考评分器,flyover_scrub.trace 是 trace-and-fit 变体,可用同一套攻击流程检验处理前后的差异。

快速使用

用 uv 安装:

uv tool install .

处理文件并输出净化后的副本(音频被处理、视频原样复制、元数据被剥离):

flyover-scrub input.mov -o output.mov

只想检查文件而不写任何内容,可用检查模式,它会报告长音调脊线和电网嗡声:

flyover-scrub --check input.mp4

要拿自己的录音对接真实航班做审计,先在录音期间采集实时 ADS-B 数据,再运行审计:

flyover-capture --at 42.36,-83.13 --minutes 15 -o flights.jsonl
flyover-audit recording.mov --flights flights.jsonl --scrub

审计会打印最近的飞机,并分别对原始文件和处理后文件给出最佳位置猜测、真实位置的排名以及信号与偶然匹配的比值。如果能在频谱图中看到曲线,还可以用 --trace 10,75,65,95(t_lo、t_hi、f_lo、f_hi)直接拟合。

README 中的示例输出如下:

  N123AB (C172, cat A1) closest 1.1 km
    original  top guess    158 m from you, your spot ranked 3/1357, signal 34.4x chance  -> EXPOSED
    scrubbed  top guess   1553 m from you, your spot ranked 506/1352, signal  1.1x chance  -> not located

使用约束

  • 审计需要你的真实位置。它从文件标签读取起始时间和位置(iPhone 的 .MOV 两者都有),也接受 --start 和 --at。文件经过导出、编辑或聊天软件后,请显式传入 --start。
  • 实时 API 只记录当下,因此要在录音前启动 flyover-capture。包内没有批量或历史航班下载功能;研究脚本中包含读取 adsb.lol 公开每日归档的读取器。
  • 评分器是针对螺旋桨音调调校的;喷气机和直升机也在测试范围内,但校准只基于少量合成样本。2–4 倍且真实位置在前 10 的边界结果,应按「可能暴露」对待,而不是已有定论。
  • 与响亮前景重叠的飞机能量(例如穿过曲线的语音谐波)会随前景一起保留;持续讲话下更响的飞越声是最可能的泄漏点。
  • 只保护你发布的那份副本。原始文件、直播、通话和监控不在范围内。把音频切成短段仍是低成本的补充防御,而元数据是比这更容易的泄漏渠道,因此 CLI 默认将其剥离。
  • 立体声左右声道独立处理,背景噪声会因此去相关,房间底噪听起来略宽。
  • 使用 MIT 许可证。

结果与证据

评估中,一段物理建模的螺旋桨飞越声被混入两段真实 iPhone 录音,攻击方拿到的是类似 ADS-B 的航迹、偏移的时钟和 10 × 10 km 的搜索范围。未处理的不可听飞越声定位误差为 0–461 m,六次运行中有四次把真实位置排在第一位。处理后误差为 1.1–5.1 km,真实位置排名 351–2087,与随机猜测无异。质量检查显示 2 kHz 以上未受影响,120 Hz–2 kHz 的长期音调平衡误差约 1 dB 以内,100 Hz 以下因稳态嗡声和机器音调被移除而下降 4–9 dB。完整的分析、数据和可复现的概念验证见研究文档。

HotRepo 点评

HotRepo 只记录到 2026 年 11 月 10 日的一条快照:该项目出现在新项目榜,在一小时窗口内新增 15 星,13:45–14:15 UTC 的采样中累计 122 星,未记录到 GitHub 全部语言日榜名次。历史很薄,只能说明它曾短暂获得一小波早期关注,不能据此判断后续热度。技术上值得注意的是,它把可运行的攻击评分器与防御放在一起,并给出明确的校准表,让声明可以沿同一流程复核;但「可能暴露」的 2–4 倍区间与 4 倍判定之间的界线,仍建立在有限的合成样本上。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

相关推荐

  1. 1337isnot1337/DOPPLERGEIST利用飞机多普勒音频和历史 ADS-B 航迹,反推录音可能发生的位置。Python371
  2. mjshiggins/dopplertrack通过比对飞机螺旋桨多普勒曲线与历史 ADS-B 航迹,推断录音的拍摄位置。Python102