203 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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个比特例如2SigDigger**无法知道哪个符号是**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}}