>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
C-plus-plus

SigDigger 将 SDR 接收机变成无线电信号逆向工程实验室

如果你曾经使用过 RTL-SDR 或 HackRF,你可能曾经在 Gqrx 或 SDR# 的频谱瀑布图前目不转睛。那些美丽的彩色轨迹在屏幕上层层下落,总有什么东西在闪烁、跳动、在空中传输着数据包。但一旦遇到未知的数字信号,标准的 SDR 程序就会陷入困境。它们能很好地处理 FM 收音机或对讲机,但要解码来自无线传感器或车库遥控器的二进制传输,你通常不得不在 GNU Radio 中构建复杂的设置,或者痛苦地将原始 IQ 样本导出到第三方工具。

这正是 SigDigger 要填补的空白。

这是什么

SigDigger 是一款带有 Qt 图形界面的交互式数字无线电信号分析器。该程序通过通用的 SoapySDR 层获取 SDR 设备的流数据,并提供实时剖析未知信号的工具。

项目作者是一位呼号为 EA1IYR 的业余无线电爱好者,构建了针对快速无线电侦察优化的软件。该应用运行在 GNU/Linux 和 macOS 上,将可视化频谱分析仪与解调和解码模块相结合。

SigDigger 在实践中有什么用

与传统的 SDR 接收机不同,这里的重点是分析数据结构。以下是一些引人注目的功能:

  • 交互式实时解调。你可以用鼠标选择一个频谱区域,并为所需的调制类型配置解调器:FSK、PSK 或 ASK。程序立即显示二进制流、相位星座图和载波参数。
  • 数据包和脉冲信号分析。对于仅出现几毫秒的无线电信号,有突发捕获模式。你可以详细检查脉冲边缘和传输时序。
  • 模拟视频解码。如果附近有老式监控摄像头或 5.8 GHz 模拟视频发射器在工作,SigDigger 可以实时渲染画面。
  • 模拟音频监听。常规接收机的基础功能仍然保留:AM、FM 和 SSB 频道都能正常工作。
  • 插件支持。特定的解码器通过插件连接,例如接收 NOAA APT 气象卫星图像或通过 ZeroMQ 导出数据以便在 Python 中进一步处理。

为什么界面看起来很像 Gqrx

第一眼看到截图就会触发似曾相识的感觉:窗口布局和瀑布图看起来和 Gqrx 一模一样。作者在文档中坦诚解释了这一点:Gqrx 的界面在现有方案中被证明是最方便实用的。

与其重新发明轮子并与图形控件的贪婪作斗争,开发者直接采用了 Gqrx 中经过验证的瀑布图组件,并根据自己的需求进行了调整,添加了 OpenGL 后端和自定义调色板。

然而,SigDigger 在底层是完全不同的架构。Gqrx 依赖重量级的 GNU Radio 框架。SigDigger 使用自己的数字信号处理引擎 Suscan 和底层 Sigutils 库。其流模型和队列处理针对并行信号分析进行了优化,具有极低的延迟。

如何运行项目

复杂的架构有一个缺点:要从源代码构建所有内容,你需要经历一长串依赖关系。SigDigger 依赖于作者开发的三个相关项目:Sigutils、Suscan 和界面组件库。

手动构建看起来令人生畏:

如果你不想处理将库编译到系统中,有两个简单的选择。在 Linux 上,最简单的方法是从 releases 页面下载现成的 AppImage。

第二个选择是使用作者的构建脚本,它会拉取必要的仓库并将带有插件的独立程序集构建到一个单独的文件夹中:

Windows 用户可能不太适合这个项目:作者明确表示他们不维护运行 Windows 的机器,也不为其构建二进制文件,因为依赖项的可移植性问题。

谁会发现 SigDigger 有用

如果你热衷于逆向工程物联网设备、汽车报警器、智能电表,或者只是研究周围的无线电协议,SigDigger 可以节省大量繁琐工作。它省去了在频谱录制软件、inspectrum 等工具和 Jupyter Notebook 脚本之间来回切换的麻烦。

该工具只需几次点击就能帮助你确定调制类型、估算符号率并获取干净的比特流以供进一步分析。要快速入门,你只需要一个廉价的 RTL-SDR 接收棒和一个现成的 AppImage。

相关项目