Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
gps-sdr-sim — Softwaredefinierter GPS-Signalsimulator | Kitploit
Tools/GitHubGitHub/osqzss/gps-sdr-sim
Embedded-System-SicherheitDrahtlose SicherheitPenetrationstestsHardware- & IoT-SicherheitArchived
GitHubosqzss/gps-sdr-sim

gps-sdr-sim

Softwaredefinierter GPS-Signalsimulator

Repository anzeigen
3.5k972vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GPS-SDR-SIM

GPS-SDR-SIM erzeugt GPS-Basisband-Signaldatenströme, die mit Software Defined Radio (SDR)-Plattformen wie ADALM-Pluto, bladeRF, HackRF und USRP in HF umgewandelt werden können.

Windows-Build-Anleitung

  1. Starten Sie Visual Studio.
  2. Erstellen Sie ein leeres Projekt für eine Konsolenanwendung.
  3. Fügen Sie im Projektmappen-Explorer rechts "gpssim.c" und "getopt.c" zum Ordner "Quelldateien" hinzu.
  4. Wählen Sie "Release" in der Dropdown-Liste der Projektmappenkonfigurationen aus.
  5. Erstellen Sie die Projektmappe.

Erstellen mit GCC

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

Verwenden größerer Benutzerbewegungsdateien

Um Benutzerbewegungsdateien mit mehr als 30000 Samples (bei 10 Hz) verwenden zu können, kann die Variable USER_MOTION_SIZE auf die maximale Zeit der Benutzerbewegungsdatei in Sekunden gesetzt werden. Es ist empfehlenswert, dies mit make zu tun, damit gps-sdr-bin die Größe bei Bedarf aktualisieren kann. z.B.:

root@kitploit:~
$ make USER_MOTION_SIZE=4000

Diese Variable kann auch beim direkten Kompilieren mit GCC gesetzt werden:

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

Generieren der GPS-Signaldatei

Eine benutzerdefinierte Trajektorie kann entweder in einer CSV-Datei, die die erdfesten (ECEF) Benutzerpositionen enthält, oder in einem NMEA-GGA-Stream angegeben werden. Die Abtastrate der Benutzerbewegung muss 10 Hz betragen. Der Benutzer kann auch direkt über die Befehlszeile einen statischen Ort zuweisen.

Der Benutzer gibt die GPS-Satellitenkonstellation über eine GPS-Broadcast-Ephemeris-Datei an. Die tägliche GPS-Broadcast-Ephemeris-Datei (brdc) ist eine Zusammenführung der einzelnen Stationsnavigationsdateien in eine. Das Archiv für die tägliche Datei kann von https://cddis.nasa.gov/archive/gnss/data/daily/ heruntergeladen werden. Für den Zugriff auf diese Seite ist eine kostenlose Registrierung erforderlich.

Diese Dateien werden dann verwendet, um die simulierten Pseudorange- und Doppler-Werte für die sichtbaren GPS-Satelliten zu generieren. Diese simulierten Entfernungsdaten werden dann verwendet, um die digitalisierten I/Q-Abtastwerte für das GPS-Signal zu erzeugen.

Die Befehlszeilenschnittstelle von bladeRF und ADALM-Pluto erfordert I/Q-Paare, die als vorzeichenbehaftete 16-Bit-Integer gespeichert sind, während hackrf_transfer und gps-sdr-sim-uhd.py vorzeichenbehaftete Bytes unterstützen.

HackRF, bladeRF und ADALM-Pluto können die Standardabtastrate von 2.6 MHz akzeptieren, während der USRP2 einen ganzzahligen Dezimator von 100 MHz benötigt, d.h. 2.5 MHz.

Die Simulationsstartzeit kann angegeben werden, wenn der entsprechende Ephemeridensatz verfügbar ist. Andernfalls wird die erste Ephemeridenzeit in der RINEX-Navigationsdatei ausgewählt.

Die maximale Simulationsdauer wird durch USER_MOTION_SIZE definiert, um zu verhindern, dass die Ausgabedatei zu groß wird.

Die Größe der Ausgabedatei kann durch Verwendung der Option "-b 1" reduziert werden, um vier 1-Bit-I/Q-Abtastwerte in einem einzigen Byte zu speichern. Sie können bladeplayer für bladeRF verwenden, um die komprimierte Datei wiederzugeben.

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

Die Benutzerbewegung kann entweder im dynamischen oder im statischen Modus angegeben werden:

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

Übertragen der Abtastwerte

Der TX-Anschluss einer bestimmten SDR-Plattform wird über einen DC-Block und ein festes 50-60-dB-Dämpfungsglied mit dem zu testenden GPS-Empfänger verbunden.

BladeRF:

Die simulierte GPS-Signaldatei mit dem Namen "gpssim.bin" kann wie unten gezeigt in den bladeRF geladen werden:

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

Sie können diese Befehle auch über die Skriptoption von bladeRF-cli wie folgt ausführen:

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

HackRF:

Die Ausgabedaten müssen 8-Bit-vorzeichenbehaftete I/Q-Abtastwerte sein.

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

Sie können das Tool hackrf_transfer in der HackRF-Hostsoftware verwenden.

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

UHD-unterstützte Geräte (nur mit USRP2 getestet):

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

Sie können auch das Tool tx_samples_from_file aus den UHD-Beispielen verwenden:

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

LimeSDR (bei 1 Msps 1-Bit-Datei, um volle Basisband-Dynamik und niedrige HF-Leistung zu erhalten):

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

ADALM-Pluto (PlutoSDR):

Es wird erwartet, dass das ADALM-Pluto-Gerät über eine aktive Netzwerkschnittstelle verfügt und standardmäßig über "pluto.local" erreichbar ist.

Standardeinstellungen:

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

TX-Dämpfung einstellen:

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

Standard -20.0 dB. Anwendbarer Bereich 0.0 dB bis -80.0 dB in 0.25-dB-Schritten.

HF-Bandbreite einstellen:

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

Standard 3.0 MHz. Anwendbarer Bereich 1.0 MHz bis 5.0 MHz.

Lizenz

Copyright © 2015-2025 Takuji Ebinuma
Verteilt unter der MIT-Lizenz.

Tool herunterladen