mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
203 lines
13 KiB
Markdown
203 lines
13 KiB
Markdown
# ラジオ
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## SigDigger
|
||
|
||
[**SigDigger** ](https://github.com/BatchDrake/SigDigger)は、GNU/LinuxおよびmacOS用の無料デジタル信号アナライザーで、未知のラジオ信号の情報を抽出するために設計されています。SoapySDRを介してさまざまなSDRデバイスをサポートし、FSK、PSK、ASK信号の可変デモジュレーション、アナログビデオのデコード、バースト信号の分析、アナログ音声チャンネルのリアルタイムリスニングを可能にします。
|
||
|
||
### 基本設定
|
||
|
||
インストール後、設定を考慮するいくつかの項目があります。\
|
||
設定(2番目のタブボタン)で、**SDRデバイス**を選択するか、**ファイルを選択**して読み取り、同調する周波数とサンプルレート(PCがサポートしている場合は最大2.56Mspsを推奨)を設定できます。
|
||
|
||
.png>)
|
||
|
||
GUIの動作では、PCがサポートしている場合は、いくつかの項目を有効にすることをお勧めします:
|
||
|
||
.png>)
|
||
|
||
> [!NOTE]
|
||
> PCが信号をキャプチャしていない場合は、OpenGLを無効にし、サンプルレートを下げてみてください。
|
||
|
||
### 使用法
|
||
|
||
- **信号の一部をキャプチャして分析する**には、「Push to capture」ボタンを必要なだけ押し続けてください。
|
||
|
||
.png>)
|
||
|
||
- SigDiggerの**チューナー**は、**より良い信号をキャプチャする**のに役立ちます(ただし、信号を劣化させることもあります)。理想的には0から始めて、**信号の改善よりも**導入される**ノイズが大きくなるまで**大きくしていきます。
|
||
|
||
.png>)
|
||
|
||
### ラジオチャンネルとの同期
|
||
|
||
[**SigDigger** ](https://github.com/BatchDrake/SigDigger)を使用して、聞きたいチャンネルと同期し、「Baseband audio preview」オプションを設定し、送信されるすべての情報を取得するための帯域幅を設定し、ノイズが本当に増加し始める前のレベルにチューナーを設定します:
|
||
|
||
.png>)
|
||
|
||
## 興味深いトリック
|
||
|
||
- デバイスが情報のバーストを送信しているとき、通常、**最初の部分はプレアンブル**になるため、そこに**情報が見つからない場合やエラーがある場合**は**心配する必要はありません**。
|
||
- 情報のフレームでは、通常、**異なるフレームが互いに整列しているのを見つけるべきです**:
|
||
|
||
.png>)
|
||
|
||
.png>)
|
||
|
||
- **ビットを回復した後、何らかの方法で処理する必要があるかもしれません**。たとえば、マンチェスター符号化では、上+下は1または0、下+上はもう一方になります。したがって、1と0のペア(上昇と下降)は、実際の1または実際の0になります。
|
||
- 信号がマンチェスター符号化を使用している場合(連続して2つ以上の0または1を見つけることは不可能です)、**プレアンブル内で複数の1または0を見つけることができるかもしれません**!
|
||
|
||
### IQを使用した変調タイプの解明
|
||
|
||
信号に情報を格納する方法は3つあります:**振幅**、**周波数**、または**位相**を変調します。\
|
||
信号をチェックしている場合、情報を格納するために何が使用されているかを特定するためのさまざまな方法があります(以下に他の方法があります)が、良い方法はIQグラフを確認することです。
|
||
|
||
.png>)
|
||
|
||
- **AMの検出**:IQグラフに**2つの円**(おそらく1つは0、もう1つは異なる振幅にある)が表示される場合、これはAM信号である可能性があります。これは、IQグラフにおいて0と円の間の距離が信号の振幅であるため、異なる振幅が使用されているのを視覚化するのが簡単だからです。
|
||
- **PMの検出**:前の画像のように、互いに関連しない小さな円を見つけた場合、位相変調が使用されている可能性があります。これは、IQグラフにおいて、点と0,0の間の角度が信号の位相であるため、4つの異なる位相が使用されていることを意味します。
|
||
- 情報が位相の変更に隠されていて、位相自体には隠されていない場合、異なる位相が明確に区別されることはありません。
|
||
- **FMの検出**:IQには周波数を識別するためのフィールドがありません(中心からの距離は振幅で、角度は位相です)。\
|
||
したがって、FMを識別するには、このグラフで**基本的に円だけを見る必要があります**。\
|
||
さらに、異なる周波数はIQグラフによって**円を横切る速度の加速**で「表現」されます(したがって、SysDiggerで信号を選択するとIQグラフが生成され、生成された円の中で加速や方向の変化が見つかると、これはFMである可能性があります):
|
||
|
||
## AMの例
|
||
|
||
{{#file}}
|
||
sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw
|
||
{{#endfile}}
|
||
|
||
### AMの解明
|
||
|
||
#### エンベロープの確認
|
||
|
||
[**SigDigger** ](https://github.com/BatchDrake/SigDigger)を使用してAM情報を確認し、**エンベロープ**を見て、異なる明確な振幅レベルを確認できます。使用されている信号は、AMで情報を送信するパルスを送信しており、1つのパルスは次のようになります:
|
||
|
||
.png>)
|
||
|
||
そして、波形を持つシンボルの一部は次のようになります:
|
||
|
||
.png>)
|
||
|
||
#### ヒストグラムの確認
|
||
|
||
情報がある信号全体を**選択**し、**振幅**モードと**選択**を選択して**ヒストグラム**をクリックできます。2つの明確なレベルのみが見つかることが観察できます。
|
||
|
||
.png>)
|
||
|
||
たとえば、このAM信号で振幅の代わりに周波数を選択すると、1つの周波数しか見つかりません(周波数で変調された情報が1つの周波数を使用していることはありません)。
|
||
|
||
.png>)
|
||
|
||
多くの周波数が見つかる場合、これはFMではない可能性が高く、信号の周波数はチャンネルの影響で変更された可能性があります。
|
||
|
||
#### IQを使用して
|
||
|
||
この例では、**大きな円**があることがわかりますが、**中心に多くの点があります**。
|
||
|
||
.png>)
|
||
|
||
### シンボルレートの取得
|
||
|
||
#### 1つのシンボルで
|
||
|
||
見つけられる最小のシンボルを選択し(それが1つだけであることを確認)、"Selection freq"を確認します。この場合、1.013kHz(つまり1kHz)になります。
|
||
|
||
.png>)
|
||
|
||
#### シンボルのグループで
|
||
|
||
選択するシンボルの数を指定することもでき、SigDiggerは1つのシンボルの周波数を計算します(選択するシンボルが多いほど、より良い結果が得られる可能性があります)。このシナリオでは、10個のシンボルを選択し、"Selection freq"は1.004 kHzです:
|
||
|
||
.png>)
|
||
|
||
### ビットの取得
|
||
|
||
これは**AM変調**信号であり、**シンボルレート**が見つかり(この場合、何か上は1、何か下は0を意味することを知っているため)、信号にエンコードされた**ビットを取得するのは非常に簡単です**。したがって、情報のある信号を選択し、サンプリングと決定を設定し、サンプルを押します(**振幅**が選択されていること、発見された**シンボルレート**が設定されていること、**Gadnerクロック回復**が選択されていることを確認してください):
|
||
|
||
.png>)
|
||
|
||
- **選択間隔に同期**は、以前にシンボルレートを見つけるために選択した間隔が使用されることを意味します。
|
||
- **手動**は、指定されたシンボルレートが使用されることを意味します。
|
||
- **固定間隔選択**では、選択する間隔の数を指定し、それに基づいてシンボルレートを計算します。
|
||
- **Gadnerクロック回復**は通常最良のオプションですが、いくつかの近似シンボルレートを指定する必要があります。
|
||
|
||
サンプルを押すと、次のようになります:
|
||
|
||
.png>)
|
||
|
||
次に、SigDiggerに**情報を持つレベルの範囲**を理解させるために、**下位レベル**をクリックし、最大レベルまでクリックを維持する必要があります:
|
||
|
||
.png>)
|
||
|
||
たとえば、**4つの異なる振幅レベル**があった場合、**シンボルあたりのビットを2に設定**し、最小から最大まで選択する必要があります。
|
||
|
||
最後に、**ズームを増やし**、**行のサイズを変更することで**ビットを確認できます(すべてを選択してコピーしてすべてのビットを取得できます):
|
||
|
||
.png>)
|
||
|
||
信号がシンボルあたり1ビット以上(たとえば2ビット)を持っている場合、SigDiggerは**どのシンボルが**00、01、10、11であるかを知る方法がないため、異なる**グレースケール**を使用してそれぞれを表現します(ビットをコピーすると、**0から3の数字**を使用しますので、処理する必要があります)。
|
||
|
||
また、**符号化**として**マンチェスター**を使用し、**上+下**は**1または0**、**下+上**は1または0になることがあります。その場合、取得した上昇(1)と下降(0)を処理して、01または10のペアを0または1に置き換える必要があります。
|
||
|
||
## FMの例
|
||
|
||
{{#file}}
|
||
sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw
|
||
{{#endfile}}
|
||
|
||
### FMの解明
|
||
|
||
#### 周波数と波形の確認
|
||
|
||
FMで変調された情報を送信する信号の例:
|
||
|
||
.png>)
|
||
|
||
前の画像では、**2つの周波数が使用されている**ことがかなりよく観察できますが、**波形**を観察すると、**2つの異なる周波数を正しく識別できないかもしれません**:
|
||
|
||
.png>)
|
||
|
||
これは、両方の周波数で信号をキャプチャしたため、1つは負の他の周波数に近いからです:
|
||
|
||
.png>)
|
||
|
||
同期された周波数が**1つの周波数に近い場合、もう1つの周波数よりも**、2つの異なる周波数を簡単に見ることができます:
|
||
|
||
.png>)
|
||
|
||
.png>)
|
||
|
||
#### ヒストグラムの確認
|
||
|
||
情報を持つ信号の周波数ヒストグラムを確認すると、2つの異なる信号を簡単に見ることができます:
|
||
|
||
.png>)
|
||
|
||
この場合、**振幅ヒストグラム**を確認すると、**1つの振幅しか見つかりません**。したがって、**AMではない**(多くの振幅が見つかる場合、信号がチャンネルに沿って電力を失っている可能性があります):
|
||
|
||
.png>)
|
||
|
||
これは位相ヒストグラムであり、信号が位相で変調されていないことを非常に明確に示しています:
|
||
|
||
.png>)
|
||
|
||
#### IQを使用して
|
||
|
||
IQには周波数を識別するためのフィールドがありません(中心からの距離は振幅で、角度は位相です)。\
|
||
したがって、FMを識別するには、このグラフで**基本的に円だけを見る必要があります**。\
|
||
さらに、異なる周波数はIQグラフによって**円を横切る速度の加速**で「表現」されます(したがって、SysDiggerで信号を選択するとIQグラフが生成され、生成された円の中で加速や方向の変化が見つかると、これはFMである可能性があります):
|
||
|
||
.png>)
|
||
|
||
### シンボルレートの取得
|
||
|
||
周波数を見つけたら、**AMの例で使用したのと同じ技術**を使用してシンボルレートを取得できます。
|
||
|
||
### ビットの取得
|
||
|
||
周波数で変調されている信号を**見つけた後、AMの例で使用したのと同じ技術**を使用してビットを取得できます。
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|