# Radio {{#include ../../banners/hacktricks-training.md}} ## SigDigger [**SigDigger** ](https://github.com/BatchDrake/SigDigger)是一个免费的数字信号分析仪,适用于GNU/Linux和macOS,旨在提取未知无线电信号的信息。它通过SoapySDR支持多种SDR设备,并允许可调的FSK、PSK和ASK信号解调,解码模拟视频,分析突发信号并实时收听模拟语音通道。 ### Basic Config 安装后,有一些配置选项可以考虑。\ 在设置(第二个标签按钮)中,您可以选择**SDR设备**或**选择一个文件**进行读取,以及要调谐的频率和采样率(如果您的PC支持,建议最高可达2.56Msps)。 ![](<../../images/image (245).png>) 在GUI行为中,如果您的PC支持,建议启用一些选项: ![](<../../images/image (472).png>) > [!NOTE] > 如果您发现您的PC没有捕获到信号,请尝试禁用OpenGL并降低采样率。 ### Uses - 只需**捕获信号的一段时间并分析它**,只需按住“Push to capture”按钮,保持所需时间。 ![](<../../images/image (960).png>) - SigDigger的**调谐器**有助于**捕获更好的信号**(但也可能会降低信号质量)。理想情况下,从0开始,继续**增大**,直到您发现引入的**噪声**大于您所需的**信号改善**。 ![](<../../images/image (1099).png>) ### Synchronize with radio channel 使用[**SigDigger** ](https://github.com/BatchDrake/SigDigger)与您想要收听的频道同步,配置“基带音频预览”选项,配置带宽以获取所有发送的信息,然后将调谐器设置到噪声真正开始增加之前的水平: ![](<../../images/image (585).png>) ## Interesting tricks - 当设备发送信息突发时,通常**第一部分是前导码**,因此您**不必担心**如果您**没有找到信息**或**那里有一些错误**。 - 在信息帧中,您通常应该**找到不同的帧彼此对齐**: ![](<../../images/image (1076).png>) ![](<../../images/image (597).png>) - **在恢复比特后,您可能需要以某种方式处理它们**。例如,在曼彻斯特编码中,上+下将是1或0,下+上将是另一个。因此,1和0的对(上和下)将是真实的1或真实的0。 - 即使信号使用曼彻斯特编码(不可能找到连续超过两个的0或1),您也可能在前导码中**找到多个1或0**! ### Uncovering modulation type with IQ 有3种方式在信号中存储信息:调制**幅度**、**频率**或**相位**。\ 如果您正在检查信号,有不同的方法可以尝试找出用于存储信息的方式(更多方法见下文),但一个好的方法是检查IQ图。 ![](<../../images/image (788).png>) - **检测AM**:如果在IQ图中出现例如**2个圆圈**(可能一个在0,另一个在不同的幅度),这可能意味着这是一个AM信号。这是因为在IQ图中,0和圆圈之间的距离是信号的幅度,因此很容易可视化使用的不同幅度。 - **检测PM**:如前图所示,如果您发现小圆圈彼此无关,这可能意味着使用了相位调制。这是因为在IQ图中,点与0,0之间的角度是信号的相位,这意味着使用了4种不同的相位。 - 请注意,如果信息隐藏在相位变化的事实中,而不是相位本身,您将不会看到不同的相位清晰区分。 - **检测FM**:IQ没有识别频率的字段(到中心的距离是幅度,角度是相位)。\ 因此,要识别FM,您应该**在此图中基本上只看到一个圆**。\ 此外,不同的频率通过IQ图的**速度加速穿过圆**来“表示”(因此在SysDigger中选择信号时,IQ图被填充,如果您发现创建的圆中的加速或方向变化,这可能意味着这是FM): ## AM Example {{#file}} sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw {{#endfile}} ### Uncovering AM #### Checking the envelope 使用[**SigDigger** ](https://github.com/BatchDrake/SigDigger)检查AM信息,仅查看**包络**,您可以看到不同的清晰幅度水平。所用信号以AM发送信息脉冲,这就是一个脉冲的样子: ![](<../../images/image (590).png>) 这就是符号的一部分与波形的样子: ![](<../../images/image (734).png>) #### Checking the Histogram 您可以**选择包含信息的整个信号**,选择**幅度**模式和**选择**,然后单击**直方图**。您可以观察到仅找到2个清晰的水平。 ![](<../../images/image (264).png>) 例如,如果您在此AM信号中选择频率而不是幅度,您只会找到1个频率(没有信息调制在频率上仅使用1个频率)。 ![](<../../images/image (732).png>) 如果您发现很多频率,这可能不会是FM,可能信号频率只是因为频道而被修改。 #### With IQ 在此示例中,您可以看到有一个**大圆**,但也有**很多点在中心**。 ![](<../../images/image (222).png>) ### Get Symbol Rate #### With one symbol 选择您能找到的最小符号(以确保它只是1个),并检查“选择频率”。在这种情况下,它将是1.013kHz(即1kHz)。 ![](<../../images/image (78).png>) #### With a group of symbols 您还可以指示要选择的符号数量,SigDigger将计算1个符号的频率(选择的符号越多,可能越好)。在这种情况下,我选择了10个符号,“选择频率”为1.004 Khz: ![](<../../images/image (1008).png>) ### Get Bits 发现这是一个**AM调制**信号和**符号率**(并且知道在这种情况下某个上意味着1,某个下意味着0),很容易**获取信号中编码的比特**。因此,选择包含信息的信号并配置采样和决策,然后按下采样(检查**幅度**已选择,发现的**符号率**已配置,**Gadner时钟恢复**已选择): ![](<../../images/image (965).png>) - **同步到选择间隔**意味着如果您之前选择了间隔以找到符号率,则将使用该符号率。 - **手动**意味着将使用指示的符号率。 - 在**固定间隔选择**中,您指示应选择的间隔数量,并从中计算符号率。 - **Gadner时钟恢复**通常是最佳选项,但您仍需指示一些近似的符号率。 按下采样后,出现以下内容: ![](<../../images/image (644).png>) 现在,为了让SigDigger理解**信息承载的水平范围**,您需要单击**较低水平**并保持按住,直到达到最高水平: ![](<../../images/image (439).png>) 如果例如有**4个不同的幅度水平**,您应该将**每个符号的比特数配置为2**,并从最小值选择到最大值。 最后**增加****缩放**和**更改行大小**,您可以看到比特(您可以选择所有并复制以获取所有比特): ![](<../../images/image (276).png>) 如果信号每个符号有超过1个比特(例如2),SigDigger**无法知道哪个符号是**00、01、10、11,因此它将使用不同的**灰度**来表示每个(如果您复制比特,它将使用**0到3的数字**,您需要处理它们)。 此外,使用**编码**如**曼彻斯特**,**上+下**可以是**1或0**,而下+上可以是1或0。在这些情况下,您需要**处理获得的上(1)和下(0)**以替换成对的01或10为0或1。 ## FM Example {{#file}} sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw {{#endfile}} ### Uncovering FM #### Checking the frequencies and waveform 发送信息调制为FM的信号示例: ![](<../../images/image (725).png>) 在前面的图像中,您可以很好地观察到**使用了2个频率**,但如果您**观察**波形,您可能**无法正确识别这2个不同的频率**: ![](<../../images/image (717).png>) 这是因为我在两个频率上捕获了信号,因此一个大约是另一个的负值: ![](<../../images/image (942).png>) 如果同步频率**更接近一个频率而不是另一个**,您可以轻松看到这2个不同的频率: ![](<../../images/image (422).png>) ![](<../../images/image (488).png>) #### Checking the histogram 检查带有信息的信号的频率直方图,您可以轻松看到2个不同的信号: ![](<../../images/image (871).png>) 在这种情况下,如果您检查**幅度直方图**,您将发现**只有一个幅度**,因此**不能是AM**(如果您发现很多幅度,可能是因为信号在频道中失去了功率): ![](<../../images/image (817).png>) 这将是相位直方图(这清楚表明信号不是相位调制): ![](<../../images/image (996).png>) #### With IQ IQ没有识别频率的字段(到中心的距离是幅度,角度是相位)。\ 因此,要识别FM,您应该**在此图中基本上只看到一个圆**。\ 此外,不同的频率通过IQ图的**速度加速穿过圆**来“表示”(因此在SysDigger中选择信号时,IQ图被填充,如果您发现创建的圆中的加速或方向变化,这可能意味着这是FM): ![](<../../images/image (81).png>) ### Get Symbol Rate 您可以使用**与AM示例中使用的相同技术**来获取符号率,一旦您找到了承载符号的频率。 ### Get Bits 您可以使用**与AM示例中使用的相同技术**来获取比特,一旦您**发现信号是频率调制的**和**符号率**。 {{#include ../../banners/hacktricks-training.md}}