>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
C-plus-plus

SigDiggerがSDR受信機をラジオ信号のリバースエンジニアリングラボに変える

RTL-SDRやHackRFを起動したことがある人なら、GqrxやSDR#のスペクトラムウォーターフォールに釘付けになったことがあるでしょう。美しいカラフルなトレースがスクリーンを伝って流れ落ち、常になにかが点滅し、クリックし、空中にパケットを送信しています。しかし、未知のデジタル信号に遭遇したとたん、標準的なSDRプログラムは行き詰まります。FMラジオやトランシーバーなら問題ありませんが、ワイヤレスセンサーやゲート遥控からのバイナリ伝送をデコードするには、通常、GNU Radioで複雑なセットアップを構築するか、生のIQサンプルをサードパーティのユーティリティに痛苦ながらエクスポートする必要があります。

SigDiggerは、まさにこのギャップを埋めます。

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に似ているのか

スクリーンショットの第一印象から déjà vu を感じます:ウィンドウレイアウトとウォーターフォールの見た目はGqrxと全く同じです。作者はドキュメントで正直に説明しています:Gqrxのインターフェースは既存のもののうち最も便利で実用的であることが判明しました。

車輪の再発明をし、グラフィックウィジェットの贪婪さと戦うのではなく、開発者はGqrxから実証済みのウォーターフォールコンポーネントを採用し、自分のニーズに合わせてOpenGLバックエンドとカスタムカラーパレットを追加しました。

しかし、SigDiggerは内部で完全に異なるアーキテクチャです。Gqrxは重量級のGNU Radioフレームワークに依存しています。SigDiggerは独自のデジタル信号処理エンジンであるSuscanと低レベルのSigutilsライブラリを使用しています。ストリーミングモデルとキュー処理は、最小限のレイテンシで並列信号解析に最適化されています。

プロジェクトの実行方法

複雑なアーキテクチャには欠点があります:ソースからすべてをビルドするには、依存関係のチェーンを経由する必要があります。SigDiggerは作者の3つの関連プロジェクト、sigutilssuscan、インターフェースコンポーネントライブラリであるSuWidgetsに依存しています。

手動ビルドは面倒に見えます:

git clone --recursive https://github.com/BatchDrake/sigutils
cd sigutils && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..

git clone --recursive https://github.com/BatchDrake/suscan
cd suscan && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..

git clone https://github.com/BatchDrake/SuWidgets
cd SuWidgets && qmake6 SuWidgetsLib.pro && make && sudo make install && cd ..

git clone https://github.com/BatchDrake/SigDigger
cd SigDigger && qmake6 SigDigger.pro && make && sudo make install && cd ..

ライブラリをシステムにコンパイルしたくない場合、2つのシンプルなオプションがあります。Linuxでは、リリースページから готовую AppImage をダウンロードするのが最も簡単な方法です。

2番目のオプションは作者のスクリプトであるblsdを使用することです。このスクリプトは必要なリポジトリをプルし、プラグインを含む分離アセンブリを別のフォルダにビルドします:

wget https://actinid.org/blsd
chmod a+x blsd
./blsd

Windowsユーザーはこのプロジェクトが適していない可能性が高いです:作者は明示的に、Windowsを実行するマシンを保持せず、依存関係の移植性の問題からWindows用のバイナリをビルドしていないと述べています。

SigDiggerが役立つ人

IoTデバイスのリバースエンジニアリング、カーアラーム、スマートメーター、または単に周囲のラジオプロトコルの勉強に興味がある場合、SigDiggerは多くのルーティンワークを省いてくれます。スペクトラム録音ソフトウェア、inspectrumなどのユーティリティ、Jupyter Notebookのスクリプトの間で常に切り替える必要がなくなります。

このツールは変調タイプを決定し、シンボルレートを推定し、数回のクリックで分析用のクリーンなビットストリームを取得できます。素早く始めるには、手頃な価格のRTL-SDRドングルと готовую AppImage だけです。

関連プロジェクト