HackRF实现GPS欺骗教程
HackRF實現GPS欺騙教程
硬件平臺:HackRF One
軟件平臺:MAC運行環境搭建
系統平臺:OS X 10.11 EI Capitan
GPS終端:One Plus手機,飛行模式,僅GPS定位,GPS test App
文章特點:根據網上的文章實驗證明發現了問題總結歸納到此,針對以上環境擔保100%成功。
0. GPS系統簡介
GPS 系統本身非常復雜, 涉及到衛星通信等各個領域. 這里只是簡單介紹一下. 我們通常所說的 GPS 全球定位系統是由美國國防部建造完成. 目前在太空中共有31顆衛星在同時運作. 一般我們需要至少4顆衛星來完成三角定位. GPS衛星同時發送民用L1和軍用L2兩種無線信號. 我們通常使用的是沒有加密的L1民用 1575.42MHz 的超高頻波段.
GPS 信號里包含了3種常用信息.
Pseudorandom code: 簡單的ID 碼, 用來識別每顆衛星. Ephemeris data: 包含衛星的運行狀態, 時間日期等信息. 這在通過衛星來定位起到非常重要的作用. Almanac data: 包含有每顆衛星的軌道信息,以及衛星在某個特定時段將出現的具體位置.內容摘自王康的PDF,下載地址見附錄:
1) GPS定位原理
首先,讓我們明確我們的需求。我們想要知道的是我們的位置坐標(x,y,z),如果從一個已知坐標(x1,y1,z1)的點A(這個點在現實情況下是衛星)廣播一個信號,比如說光和聲音或者電磁波,然后我們試著去測量信號發送至到達的時間差τ1(在gps系統中我們用的是電磁波,我們知道它的速度),然后我們就能得出下面的等式:
這個等式有3個未知變量,因此單單一個等式解不出來,我們可以再加兩個已知位置的點(衛星),我們把它們記作(x2,y2,z2) 和 (x3,y3,z3),然后就是下面的方程組
現在我們就能解出我們的位置(x,y,z)了
但在工程應用中這樣還不夠。為了測量電磁波發送至到達的時間差τ1,需要在電磁波發送的時候寫一個時間戳t1,然后是衛星上的時鐘時間參考值,當信號到達我們這里時,我們提取出時間戳t1,然后計算t1和當地時間t2的差值來計算時間差τ1。然而當地時間和衛星時間并不是同步的,會出現一個時間偏移量?t1,所以這個時間偏移量也要被考慮進去,于是修正后的方程式如下所示:
譯者注:所以有4個變量,就需要4個衛星來創造4個等式啦,以下高等數學內容略,以上內容說明我們需要偽造至少4顆衛星的信號才能使gps定位
1. 下載編譯gps-sdr-sim
因為我的OSX系統下使用MacPorts安裝了gcc5,xcode默認安裝的gcc是/usr/bin/gcc,所以直接make可能會提示找不到omp.h文件因為調用的是xcode的gcc(蘋果xcode安裝的gcc很多程序都無法成功編譯),那么按照下面的步驟即可正常安裝。
$ git clone https://github.com/osqzss/gps-sdr-sim.git $ cd gps-sdr-sim $ gcc-mp-5 gpssim.c -lm -O3 -o gps-sdr-sim或者干脆sudo port select gcc mp-5再make就OK了
2. RINEX星歷數據下載
ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/2016/brdc找brdc0050.16n.Z 這樣的文件,解壓出來就是了
3. 生成GPS仿真數據
$./gps-sdr-sim -e brdc3540.14n -l 29.643598,91.101319,100 -b 8指定星歷文件(可自行更新至最新的星歷數據),設置經緯度(拉薩市),必須指定采樣精度為8否則用hackRF one欺騙成功率不高,反正我指定16是沒成功過(默認為16,烏云文章也是16但設備是bladeRF)
另外如果有其他目的也可以偽造一個動態的GPS數據樣本,例如欺騙計步器,軌跡等
$./gps-sdr-sim -e brdc3540.14n -u circle.csv -b 8GPS-SDR-SIM 運行時間問題
默認情況下GPS模擬器只能連續工作5分鐘左右. 通過查看源代碼后, 我們可以發現這是因為程序默認設置導致. 在程序設計之初為了節省硬盤空間, 默認只生成了300秒左右的數據. 我們可以通過改動參數來延長工作時間. 但需要注意的是僅僅延長到15分鐘,數據便可達到5G大小.
4. HackRF發射GPS數據
$ hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0 -R指定GPS數據,指定頻率為1575420000 即民用GPS L1波段頻率,指定采樣速率2.6Msps,開啟天線增益,指定TX VGA(IF)為0(為了限制影響范圍,最大為47慎用!!!),最后開啟重復發射數據功能
手機終端1分40秒就可以被欺騙成功,這里有一個測試技巧,就是定模模式選僅GPS定位,不要用基站、WLAN定位,這樣打開地圖等軟件就是偽造后的GPS坐標點。
效果如圖所示:
附錄:
https://www.blackhat.com/docs/eu-15/materials/eu-15-Kang-Is-Your-Timespace-Safe-Time-And-Position-Spoofing-Opensourcely-wp.pdf
總結
以上是生活随笔為你收集整理的HackRF实现GPS欺骗教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实现生产者消费者案例
- 下一篇: 前端03——css