Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gps-sdr-sim — ソフトウェア定義GPS信号シミュレータ | Kitploit
ツール/GitHubGitHub/osqzss/gps-sdr-sim
組み込みシステムセキュリティワイヤレスセキュリティペネトレーションテストハードウェアとIoTセキュリティArchived
GitHubosqzss/gps-sdr-sim

gps-sdr-sim

ソフトウェア定義GPS信号シミュレータ

リポジトリを見る
3.5k9721年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

GPS-SDR-SIM

GPS-SDR-SIMは、GPSベースバンド信号データストリームを生成し、ADALM-Pluto、bladeRF、HackRF、USRPなどのソフトウェア定義ラジオ(SDR)プラットフォームを使用してRFに変換できます。

Windowsビルド手順

  1. Visual Studioを起動します。
  2. コンソールアプリケーション用の空のプロジェクトを作成します。
  3. 右側のソリューションエクスプローラーで、"gpssim.c"と"getopt.c"をソースファイルフォルダに追加します。
  4. ソリューション構成のドロップダウンリストから"Release"を選択します。
  5. ソリューションをビルドします。

GCCを使用したビルド

root@kitploit:~
$ gcc gpssim.c -lm -O3 -o gps-sdr-sim

より大きなユーザーモーションファイルの使用

30000サンプル(10Hz)を超えるユーザーモーションファイルを使用するには、USER_MOTION_SIZE変数をユーザーモーションファイルの最大時間(秒)に設定できます。makeを使用してこれを行うことをお勧めします。これにより、gps-sdr-binが必要に応じてサイズを更新できます。例:

root@kitploit:~
$ make USER_MOTION_SIZE=4000

この変数は、GCCで直接コンパイルする場合にも設定できます:

root@kitploit:~
$ gcc gpssim.c -lm -O3 -o gps-sdr-sim -DUSER_MOTION_SIZE=4000

GPS信号ファイルの生成

ユーザー定義の軌道は、地球中心地球固定(ECEF)ユーザー位置を含むCSVファイル、またはNMEA GGAストリームのいずれかで指定できます。ユーザーモーションのサンプリングレートは10Hzでなければなりません。ユーザーはコマンドラインから直接静的な位置を指定することもできます。

ユーザーはGPS放送暦ファイルを介してGPS衛星コンステレーションを指定します。毎日のGPS放送暦ファイル(brdc)は、個々のサイトの航法ファイルを1つにマージしたものです。毎日のファイルのアーカイブは、https://cddis.nasa.gov/archive/gnss/data/daily/ からダウンロードできます。このサイトへのアクセスには無料の登録が必要です。

これらのファイルは、可視GPS衛星のシミュレートされた擬似距離とドップラーを生成するために使用されます。このシミュレートされた距離データは、GPS信号のデジタル化されたI/Qサンプルを生成するために使用されます。

bladeRFおよびADALM-Plutoのコマンドラインインターフェースは、符号付き16ビット整数として保存されたI/Qペアを必要としますが、hackrf_transferとgps-sdr-sim-uhd.pyは符号付きバイトをサポートします。

HackRF、bladeRF、ADALM-Plutoはデフォルトのサンプルレート2.6MHzを受け入れますが、USRP2には100MHzの偶数整数デシメータ、つまり2.5MHzが必要です。

対応する暦のセットが利用可能な場合、シミュレーション開始時間を指定できます。それ以外の場合は、RINEX航法ファイル内の最初の暦時間が選択されます。

最大シミュレーション時間は、出力ファイルが大きくなりすぎないように、USER_MOTION_SIZEによって定義されます。

出力ファイルサイズは、"-b 1"オプションを使用して4つの1ビットI/Qサンプルを1バイトに格納することで削減できます。圧縮ファイルを再生するには、bladeRF用のbladeplayerを使用できます。

root@kitploit:~
Usage: gps-sdr-sim [options]
Options:
  -e <gps_nav>     RINEX navigation file for GPS ephemerides (required)
  -u <user_motion> User motion file in ECEF x, y, z format (dynamic mode)
  -x <user_motion> User motion file in lat, lon, height format (dynamic mode)
  -g <nmea_gga>    NMEA GGA stream (dynamic mode)
  -c <location>    ECEF X,Y,Z in meters (static mode) e.g. 3967283.15,1022538.18,4872414.48
  -l <location>    Lat,Lon,Hgt (static mode) e.g. 30.286502,120.032669,100
  -L <wnslf,dn,dtslf> User leap future event in GPS week number, day number, next leap second e.g. 2347,3,19
  -t <date,time>   Scenario start time YYYY/MM/DD,hh:mm:ss
  -T <date,time>   Overwrite TOC and TOE to scenario start time
  -d <duration>    Duration [sec] (dynamic mode max: 300 static mode max: 86400)
  -o <output>      I/Q sampling data file (default: gpssim.bin ; use - for stdout)
  -s <frequency>   Sampling frequency [Hz] (default: 2600000)
  -b <iq_bits>     I/Q data format [1/8/16] (default: 16)
  -i               Disable ionospheric delay for spacecraft scenario
  -p [fixed_gain]  Disable path loss and hold power level constant
  -v               Show details about simulated channels

ユーザーモーションは、動的モードまたは静的モードのいずれかで指定できます:

root@kitploit:~
> gps-sdr-sim -e brdc3540.14n -u circle.csv
root@kitploit:~
> gps-sdr-sim -e brdc3540.14n -x circle_llh.csv
root@kitploit:~
> gps-sdr-sim -e brdc3540.14n -g triumphv3.txt
root@kitploit:~
> gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100

サンプルの送信

特定のSDRプラットフォームのTXポートは、DCブロックと固定の50-60dBアッテネータを介してテスト対象のGPSレシーバに接続されます。

BladeRF:

シミュレートされたGPS信号ファイル("gpssim.bin"という名前)は、以下に示すようにbladeRFにロードして再生できます:

root@kitploit:~
set frequency 1575.42M
set samplerate 2.6M
set bandwidth 2.5M
set txvga1 -25
cal lms
cal dc tx
tx config file=gpssim.bin format=bin
tx start

以下のようにbladeRF-cliスクリプトオプションを使用してこれらのコマンドを実行することもできます:

root@kitploit:~
> bladeRF-cli -s bladerf.script

HackRF:

出力データは8ビット符号付きI/Qサンプルでなければなりません。

root@kitploit:~
> gps-sdr-sim -e brdc0010.22n -b 8

HackRFホストソフトウェアのhackrf_transferツールを使用できます。

root@kitploit:~
> hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0

UHD対応デバイス(USRP2のみでテスト済み):

root@kitploit:~
> gps-sdr-sim-uhd.py -t gpssim.bin -s 2500000 -x 0

UHDの例に含まれているtx_samples_from_fileツールも使用できます:

root@kitploit:~
> tx_samples_from_file --file gpssim.bin --type short --rate 2500000 --freq 1575420000 --gain 0

LimeSDR(1 Msps 1ビットファイルの場合、フルベースバンドダイナミックと低RF電力を得るため):

root@kitploit:~
> limeplayer -s 1000000 -b 1 -d 2047 -g 0.1 < ../circle.1b.1M.bin

ADALM-Pluto (PlutoSDR):

ADALM-Plutoデバイスは、ネットワークインターフェースが起動して動作しており、デフォルトで"pluto.local"を介してアクセス可能であることが期待されます。

デフォルト設定:

root@kitploit:~
> plutoplayer -t gpssim.bin

TX減衰量の設定:

root@kitploit:~
> plutoplayer -t gpssim.bin -a -30.0

デフォルト-20.0dB。適用範囲は0.0dB~-80.0dBで、0.25dBステップです。

RF帯域幅の設定:

root@kitploit:~
> plutoplayer -t gpssim.bin -b 3.0

デフォルト3.0MHz。適用範囲は1.0MHz~5.0MHzです。

ライセンス

Copyright © 2015-2025 Takuji Ebinuma
MIT Licenseの下で配布されています。

ツールをダウンロード