日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站

發(fā)布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
GSM BTS Hacking: 利用BladeRF和開源BTS 5搭建基站

引文

如果你已經(jīng)購買了Nuand(官方)BladeRF x40,那么就可以在上面運行OpenBTS并可以輸入一些指令來完成一些任務(wù)。一般來說HackRF,是一款覆蓋頻率最寬的SDR板卡。它幾乎所有的信息都是開源的,甚至包括KiCad文件。缺點是它沒有FPGA,使用的低速的USB2接口,ADC/DAC的精度比較低。

再使用 bladeRF 板卡時需要注意兩個“鏡像”:固件 (firmware) 鏡像與 FPGA 鏡像。二者是兩個不同的概念。但是業(yè)界叫法不一,有時候會把二者混為一談。一般而言,固件指的是嵌入到硬件設(shè)備中的軟件,存放在只讀存儲器 (ROM) 或者閃存 (flash) 中,一般不易修改,修改的操作稱為“刷新”(flashing)。固件這個名詞最初和微代碼相關(guān),不過 bladeRF 里源代碼是嵌入式 C 程序。FPGA 全名為可編程門陣列,其門電路、寄存器連接可以編程重構(gòu),其源程序一般是硬件描述語言 (HDL),通過綜合 (synthesis) 等步驟得到二進制文件。在 bladeRF 板卡上,FPGA 只是一塊 Altera 芯片。在沒有內(nèi)置非揮發(fā)存儲時,FPGA 鏡像需要每次上電時重新加載,bladeRF 就是這種情況。所以在拿到板卡時,上面已有固件,但還沒有 FPGA 鏡像。下面本文會具體說明在使用 bladeRF 時如何刷新固件、加載/更新 FPGA 鏡像、以及如何自動加載 FPGA 鏡像。注意,有時為了避免混淆,會稱 FPGA 鏡像為 FPGA 比特流,或者 FPGA 配置(因為它就是配置了門電路等組件的連接)。

本文中介紹的工具、技術(shù)帶有一定的攻擊性,請合理合法使用。

系統(tǒng):

Ubuntu 12.04 LTS Server (32位)下載:(點擊我)

升級git版本

sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:git-core/ppa (press enter to continue) sudo apt-get update sudo apt-get install git

安裝一些前提軟件包。

設(shè)置好之后,開始安裝。

將下面代碼復(fù)制粘貼,運行-將會開始安裝:

sudo apt-get install $(wget -qO - https://raw.githubusercontent.com/RangeNetworks/dev/master/build.sh | \grep installIfMissing | \grep -v "{" | \cut -f2 -d" ")

另外一種安裝方式是通過在所有文件中搜索文本文件 IFMissing,然后再通過apt-get 命令來安裝它。當(dāng)然你也可以直接通過程序代碼來操作。

值得注意的是,安裝時候有兩個安裝包會失敗(libzmq3 & libzmq3-devel)-但可以在Ubuntu系統(tǒng)下直接安裝。

$ sudo add-apt-repository ppa:chris-lea/zeromq $ sudo apt-get update $ sudo apt-get install libzmq3-dbg libzmq3-dev

下一步是安裝uhd,當(dāng)然還要注意GNURadio。運行下面的指令將會執(zhí)行安裝,當(dāng)然這回花掉一些時間,而這也取決于你的電腦。

wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio

一旦執(zhí)行完成,你將會收到失敗或成功的提示信息。如果失敗可以選擇重新安裝,并查看相關(guān)信息來解決問題。下面將會安裝和配置 OpenBTS相關(guān)軟件,包括:libgsm1-dev 、asterisk-dev 、asterisk-config。安裝

$ sudo apt-get install libgsm1-dev asterisk-dev asterisk-config

當(dāng)然你可以自主選擇是否安裝libusb,請注意不是 libusbx 。安裝可以到www.libusb.org頁面下載,然后將其復(fù)制到 /usr/src目錄下。將/usr/lib/x86_64-linux-gnu/libusb.so原始文件備份后覆蓋它。

安裝OpenBTS

完成上面的事情之后,現(xiàn)在就開始安裝它吧。

1.為其(OpenBTS)創(chuàng)建一個目錄(結(jié)合實際情況)

2.然后安裝并運行它

#!/bin/bashgit clone https://github.com/RangeNetworks/openbts.git git clone https://github.com/RangeNetworks/smqueue.git git clone https://github.com/RangeNetworks/subscriberRegistry.git #From here and downwards you can copy&paste (that's why the ';' are for) for D in *; do (echo $D;echo "=======";cd $D;git clone https://github.com/RangeNetworks/CommonLibs.git;git clone https://github.com/RangeNetworks/NodeManager.git); done; git clone https://github.com/RangeNetworks/libcoredumper.git; git clone https://github.com/RangeNetworks/liba53.git

3.創(chuàng)建 libcoredumper

cd libcoredumper; ./build.sh && \sudo dpkg -i *.deb; cd ..

4.創(chuàng)建 liba53

cd liba53; make && \sudo make install; cd ..

5.在同一目錄下,check out“YateBTS”

svn checkout http://voip.null.ro/svn/yatebts/trunk yatebts

6.下一步去掉 FPGA(自動加載)信息,然后加載并打開它

vim ./yatebts/mbts/TransceiverRAD1/bladeRFDevice.cpp

從#ifdef(108行)到#endif(129行)結(jié)束,這之間是空的,應(yīng)該為后來留為備用的。

7.更換目錄(YateBTS)然后運行 autogen.sh

$ cd opbts/yatebts $ ./autogen.sh

8.這樣就可以創(chuàng)建配置文件,如果你立刻運行并配置腳本,將會出現(xiàn)錯誤然后出現(xiàn)搜索YATE信息。所以先要打開它配置

$vim configure

能夠找到as_fn_err $嗎?能夠找到$LINENO變量(開源軟件 Yate)并替換嗎?那么進行下一步吧

9.重新配置

./configure

10.這個時候需要開源軟件YateBTS兩個文件目錄

a) Peering

$ cd /home/openbts/obts/yatebts/mbts/Peering $ make

b) TransceiverRAD1

$ cd /home/openbts/obts/yatebts/mbts/TransceiverRAD1 $ make

11.復(fù)制兩個文件到 OpenBTS 文件目錄下

$ cd .. $ cp ./yatebts/mbts/TransceiverRAD1/transceiver-bladerf openbts/apps/ $ cd openbts/apps/ $ ln -sf transceiver-bladerf transceiver

12.編譯OpenBTS

$ cd /home/openbts/obts/openbts $ ./autogen.sh $ ./configure --with-uhd $ make

13.下一步配置SQL-lite軟件庫(bladeRF),需要做一些修改

vim /home/openbts/obts/openbts/apps/OpenBTS.example.sql

查詢并替換以下信息

完成并進行下一步

14.創(chuàng)建OpenBTS配置目錄

$ sudo mkdir /etc/OpenBTS

15.在OpenBTS目錄下,安裝軟件庫

$ sudo sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db ".quit"

16.一旦完成,下一步可以通過命令來測試它

$ sqlite3 /etc/OpenBTS/OpenBTS.db .dump

如果看到了大量的輸出數(shù)據(jù)信息,那么就表明成功了。進行下一步

17.通過命令運行OpenBTS

$ cd /home/openbts/obts/openbts/apps $ sudo ./OpenBTS

如果看見系統(tǒng)啟動,你的基站準(zhǔn)備好并啟動它,如果使用手機搜尋附近網(wǎng)絡(luò),應(yīng)該出現(xiàn)測試PLMN網(wǎng)絡(luò)的測試信息(00101)。

18.如果開始上面的測試,退出openBTS然后安裝用戶注冊表(sipauthserve以及smqueue),需要這些才能夠運行openBTS。沒有這些,手機不會連接測試網(wǎng)絡(luò)。

19. 對于用戶注冊表,必須要創(chuàng)建一個文件目錄,即/var/lib/asterisk/sqlite3dir,創(chuàng)建它

$ sudo mkdir -p /var/lib/asterisk/sqlite3dir

20.創(chuàng)建 sipauthserve

$ cd subscriberRegistry $ ./autogen.sh $ ./configure $ make

在/home/openbts/obts/subscriberRegistry/apps目錄下創(chuàng)建

21.下一步配置 sipauthserve

$ cd /home/openbts/obts/subscriberRegistry $ sudo sqlite3 -init subscriberRegistry.example.sql /etc/OpenBTS/sipauthserve.db ".quit"

22.下一步安裝SMQUEUE,其與SubscriberRegistry.h文件有關(guān)聯(lián),可以在其目錄修復(fù)它

$ cd /home/openbts/obts/smqueue $ ln -s /home/openbts/obts/subscriberRegistry/ SR $ autoreconf -i $ ./configure $ make

23.一旦完成之后,就需要修改其配置文件

$ cd /home/openbts/obts/smqueue $ sudo sqlite3 -init smqueue/smqueue.example.sql /etc/OpenBTS/smqueue.db ".quit"

bladeRF 固件升級與FPGA鏡像加載

24.在https://github.com/Nuand/bladeRF/wiki/Upgrading-bladeRF-firmware升級固件

25.完成之后在http://www.nuand.com/fpga.php下載鏡像(FPGA)

26.加載FPGA鏡像

$ bladeRF-cli -L <path to fpga image file>

這步一定要有耐心,不要突然終止,別讓板子變成磚了。

27. 完成之后,開始運行之前的配置的服務(wù)吧。

$ cd /home/openbts/obts/smqueue $ sudo ./smqueue &$ cd /home/openbts/obts/subscriberRegistry/apps $ sudo ./sipauthserve &$ cd /home/openbts/obts/openbts/apps $ sudo ./OpenBTS &

28.啟動OpenBTSCLI

$ cd /home/openbts/obts/openbts/apps/ $ sudo ./OpenBTSCLI

29. 默認情況下, OpenBTS不會接受額外的登記信息,需要做到下面幾點

a) 輸入你手機的IMSI(國際移動用戶識別碼)

b) 設(shè)置所有的IMSI號可以被登記

config Control.LUR.OpenRegistration .*

這么做將會導(dǎo)致信號范圍內(nèi)所有的手機連接到你配置的基站上面,包括(隔壁的妹子or老王)。

現(xiàn)在你可以在手機上能夠搜索到基站網(wǎng)絡(luò)了,可以撥打服務(wù)電話(作者那邊是600)做測試(Asterisk)。

了解更多

[1]?https://github.com/Nuand/bladeRF/wiki/Minimalistic-build-and-run-test-for-OpenBTS-5

[2]?https://wush.net/trac/rangepublic/wiki/BuildInstallRun#ConfiguringOpenBTS

[3]?https://wush.net/trac/rangepublic/wiki/CommonErrors

[4]?http://openbts.org/w/index.php/Main_Page

[5]?https://github.com/Nuand/bladeRF/wiki/Upgrading-bladeRF-firmware

*參考來源:linux.net.pk


本文轉(zhuǎn)自 K1two2 博客園博客,原文鏈接:?http://www.cnblogs.com/k1two2/p/5379655.html?,如需轉(zhuǎn)載請自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。