Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gps-sdr-sim — 소프트웨어 정의 GPS 신호 시뮬레이터 | Kitploit
도구/GitHubGitHub/osqzss/gps-sdr-sim
Embedded Systems SecurityWireless SecurityPenetration TestingHardware & IoT SecurityArchived
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. 오른쪽의 Solution Explorer에서 "gpssim.c"와 "getopt.c"를 Source Files 폴더에 추가합니다.
  4. Solution Configurations 드롭다운 목록에서 "Release"를 선택합니다.
  5. 솔루션을 빌드합니다.

GCC를 사용한 빌드

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

더 큰 사용자 모션 파일 사용하기

30000개 이상의 샘플(10Hz 기준)을 포함하는 사용자 모션 파일을 사용하려면, USER_MOTION_SIZE 변수를 사용자 모션 파일의 최대 시간(초)으로 설정할 수 있습니다. 필요한 경우 gps-sdr-bin이 크기를 업데이트할 수 있도록 make를 사용하여 설정하는 것이 좋습니다. 예:

root@kitploit:~
$ make USER_MOTION_SIZE=4000

이 변수는 GCC로 직접 컴파일할 때도 설정할 수 있습니다:

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

GPS 신호 파일 생성

사용자 정의 궤적은 CSV 파일(지구 중심 지구 고정(ECEF) 사용자 위치 포함) 또는 NMEA GGA 스트림으로 지정할 수 있습니다. 사용자 모션의 샘플링 속도는 10Hz여야 합니다. 또한 명령줄을 통해 정적 위치를 직접 할당할 수 있습니다.

사용자는 GPS 방송 천력 파일을 통해 GPS 위성 별자리를 지정합니다. 일일 GPS 방송 천력 파일(brdc)은 개별 사이트 항법 파일을 하나로 합친 것입니다. 일일 파일 아카이브는 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 샘플을 단일 바이트에 저장하여 줄일 수 있습니다. 압축된 파일을 재생하려면 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에 따라 배포됩니다.

도구 다운로드