但都不說最終能干啥,滾屏完了就沒了,大牛都太低調(diào)了,最近有朋友也在搞這個(gè),了解了一下,以下描述都是我最近查閱的大量鳥文資料及少量中文資料之后的理解,如有誤望指出。
相關(guān)鏈接:
http://bb.osmocom.org/trac/wiki/TitleIndex
硬件部分
支持的手機(jī)
-
- MotorolaC123/C121/C118 (E88) -- our primary target
- MotorolaC140/C139 (E86)
- MotorolaC155 (E99) -- our secondary target
- MotorolaV171 (E68/E69)
- SonyEricssonJ100i
- Pirelli DP-L10
- Neo 1973 (GTA01)
- OpenMoko - Neo Freerunner (GTA02)
- SciphoneDreamG2 (MT6235 based)
國(guó)內(nèi)比較多的是C118,需要換兩個(gè)balun,不知道怎么翻譯,好像是接收數(shù)據(jù)過濾用的,不過手藝不好的就算了,不換也可以用,只是沒有uplink的數(shù)據(jù),只能抓到基站廣播的數(shù)據(jù)。
官方的教程http://bb.osmocom.org/trac/wiki/Hardware/FilterReplacement
以下貼幾個(gè)我改的圖,有熱風(fēng)槍應(yīng)該好改一些,反正沒有好的工具的話我這輩子是不會(huì)再改這個(gè)了。
一打開蓋子就看到兩個(gè)大鐵殼,傻眼了


這么小真是下不去手啊,有熱風(fēng)槍會(huì)好辦一點(diǎn),再來幾個(gè)改機(jī)的圖



以下刷的rssi固件,如果沒改硬件,uplink信號(hào)沒有的,圖中是downlink,uplink的圖沒截


刷機(jī)線
自己買根T191線或者把帶的耳機(jī)線改改(下圖的紅白顏色說的是手機(jī)自帶的耳機(jī)線,別的耳機(jī)線可能顏色不同)

下圖參考

軟件部分
大家也可以上官網(wǎng)查看手冊(cè)及相關(guān)刷機(jī)、編譯步驟:
http://bb.osmocom.org/trac/wiki/GettingStarted
不過我按照官網(wǎng)的步驟編譯的時(shí)候卡在開始下載交叉編譯環(huán)境上了,由于時(shí)間太久了,文中那個(gè)鏈接已經(jīng)失效,使用這里的地址:http://bb.osmocom.org/trac/wiki/GnuArmToolchain
下面是完整步驟,我的Ubuntu 12.10 內(nèi)核3.5.0-17 x86_64編譯測(cè)試通過,干凈的系統(tǒng)按照我下面的步驟一般都不會(huì)有什么問題:
-------------------------準(zhǔn)備交叉編譯環(huán)境--------------------------
mkdir osmcombb
cd osmcombb
wget http://bb.osmocom.org/trac/raw-attachment/wiki/GnuArmToolchain/gnu-arm-build.2.sh
chmod +x gnu-arm-build.2.sh
sudo apt-get install build-essential libgmp3-dev libmpfr-dev libx11-6 libx11-dev texinfo flex bison libncurses5 libncurses5-dbg libncurses5-dev libncursesw5 libncursesw5-dbg libncursesw5-dev zlibc zlib1g-dev libmpfr4 libmpc-dev
mkdir build install src
cd src/
wget http://ftp.gnu.org/gnu/gcc/gcc-4.5.2/gcc-4.5.2.tar.bz2
wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2
wget ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz
cd ..
./gnu-arm-build.2.sh
export PATH=$PATH:<YOURPATH>/install/bin
--------------------------準(zhǔn)備libosmocore----------------------
cd libosmocore/
autoreconf -i
./configure
make
sudo make install
cd ..
sudo ldconfig
---------------------------編譯osmocomBB---------------------
我編譯了無數(shù)遍無數(shù)版本,包括master分支,Sylvain/burst_ind分支,sylvain/testing分支,還有另外一個(gè)老外存的老版本,需要打patch補(bǔ)丁的版本,最終還是用luca/gsmmap的版本成功,也不能說前面說的幾個(gè)版本有問題,之前有很多問題,編譯器,git等等一團(tuán)亂麻,可能是我別的地方有出錯(cuò)。
另:Sylvain/burst_ind分支是網(wǎng)上說的比較多的帶sniffer功能的分支,但是編譯完無法刷固件,需要修改osmocom-bb/src/host/osmocon/osmocon.c,文件中添加定義
ok,我們使用luca/gsmmap分支,
該項(xiàng)目的主要目標(biāo)是建立GSM網(wǎng)絡(luò)的地理分布,然后分析 偽造,攔截和跟蹤的可能性,會(huì)在官網(wǎng)上披露GSM的安全性。
官方提供一個(gè)自己的LiveCD,基于Debian,木有xWindow,參加項(xiàng)目的可以傻瓜化的使用并且抓包,用VirtualBOX或者VMware載入,開機(jī)后記得把osmocom-bb所用的C1**系列手機(jī)和數(shù)據(jù)線連到虛擬機(jī),然后按照提示輸入gsm即可開始。
git clone git://git.osmocom.org/osmocom-bb.git
cd osmocom-bb
git checkout --track origin/luca/gsmmap
//git clone git://git.osmocom.org/osmocom-bb.git
//cd osmocom-bb
//git pull –rebase
如果需要進(jìn)行實(shí)網(wǎng)測(cè)試需要打開src/target/firmware/Makefile文件中的編譯開關(guān)
-#CFLAGS +=-DCONFIG_TX_ENABLE
+CFLAGS +=-DCONFIG_TX_ENABLE
make
-------------------------運(yùn)行-------------------------------------------
編譯一切OK后,進(jìn)行刷手機(jī)操作,我的C118手機(jī),固件都是在compal_e88目錄下的bin文件,會(huì)有很多bin文件

其中compalram為我們用來刷手機(jī)的,只會(huì)寫入ram,重啟手機(jī)就沒了,highram是為了加載超過65535的大文件,比如rssi.highram.bin,e88flash和e88loader是用來真實(shí)刷入手機(jī)固件的,慎用,因?yàn)槲疫€想平時(shí)打打電話呢。我之前就刷掛了,bootloader還在,還好我買了兩個(gè),把另外一個(gè)讀出來重新寫回去了。
layer1和src/host/layer23/src/mobile/mobile程序,實(shí)現(xiàn)了從layer1到layer3的功能,我們主要用layer1,rssi是用來測(cè)試信號(hào)的,不同的信道信號(hào)強(qiáng)度等等一些相關(guān)信息,需要配合chainload或loader刷入,這幾個(gè)應(yīng)用詳細(xì)說明在這里:http://bb.osmocom.org/trac/wiki/Applications
連上硬件,使用lsusb和dmesg查看端口號(hào),我都是ttyUSB0,c123和c118手機(jī)都用c123xor參數(shù),CompalE88(C118/C120/C121/C123),CompalE99(C155)
sudo ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/layer1.compalram.bin
然后在手機(jī)關(guān)機(jī)的狀態(tài)下,點(diǎn)按開機(jī)鍵,不是長(zhǎng)按,屏幕就會(huì)顯示下載刷寫固件并執(zhí)行,如下圖就說明成功了
此時(shí)手機(jī)應(yīng)該顯示layer1的提示

新開一個(gè)命令行窗口,進(jìn)行搜索基站信號(hào),
sudo ./cell_log -O
關(guān)于ARFCN號(hào),貼個(gè)表供參考
頻段 | 名稱 | 信道號(hào) | 上行(MHz) | 下行(MHz) | 其他 |
GSM 850 | GSM 850 | 128 - 251 | 824,0 - 849,0 | 869,0 - 894,0 | 美國(guó), 南美洲國(guó)家 和 亞洲部分國(guó)家。 |
GSM 900 | P-GSM 900 | 1-124 | 890,0 - 915,0 | 935,0 - 960,0 | GSM最先實(shí)現(xiàn)的頻段,也是使用最廣的頻段。 |
E-GSM 900 | 975 - 1023 | 880,0 - 890,0 | 925,0 - 935,0 | 900M擴(kuò)展頻段 | |
R-GSM 900 | n/a | 876,0 - 880,0 | 921,0 - 925,0 | 鐵路GSM(GSM-R),為鐵路調(diào)度通信系統(tǒng)開發(fā)的特殊版本。 | |
GSM1800 | GSM 1800 | 512 - 885 | 1710,0 - 1785,0 | 1805,0 - 1880,0 | 適用于對(duì)信道容量需求大的市場(chǎng),應(yīng)用范圍僅次于900M。 |
GSM1900 | GSM 1900 | 512 - 810 | 1850,0 - 1910,0 | 1930,0 - 1990,0 | 主要用于美洲國(guó)家,由于有頻率重疊,與1800M系統(tǒng)不兼容。 |
然后使用ccch_scan進(jìn)行抓包,-a參數(shù)為指定ARFCN號(hào),我們用上圖中信號(hào)比較強(qiáng)的30
layer23使用src/host/layer23/src/mobile下的mobile程序?qū)崿F(xiàn),如果只是抓包數(shù)據(jù),下列命令不需要執(zhí)行
sudo ./mobile -i 127.0.0.1
執(zhí)行了mobile程序之后,本機(jī)會(huì)開啟4247端口,可以使用telnet進(jìn)行訪問,然后配置執(zhí)行,命令及參數(shù)執(zhí)行方式跟交換機(jī)類似
使用wireshark進(jìn)行抓包分析還是比較方便的
uplink的比較少,不知道是不是因?yàn)楦臋C(jī)把信號(hào)改弱了

有個(gè)uplink,估計(jì)就在我旁邊發(fā)的


附:
iphone工程模式:撥號(hào)界面 *3001#12345#* 按呼叫鍵,可查到當(dāng)前連接的ARFCN號(hào)
我的三星三兒子:撥號(hào)界面 *#*#4636#*#* ,沒有ARFCN,只有cell_id,不用找了,這個(gè)手機(jī)的android下沒有顯示arfcn的工具。
thanks to OsmoCarpenteR, a guy in the IRC
但是在第一個(gè)下載固件的窗口上可以看到許多基站的信息
沒買到
換usb轉(zhuǎn)串口硬件
不清楚,查源碼吧
換信道,也可能確實(shí)沒人收發(fā)短信,也可能信號(hào)太弱,不需要sim卡
目前是用的PL2303。。。你帖子里用的是CP2102?
求解~~ 因?yàn)闀r(shí)好時(shí)壞,正常的時(shí)候完全可用,所以RXTX線序肯定是OK的。
你貼個(gè)聯(lián)系方式給我吧,咱們加了一起討論討論
xxooxxooxxooxxooxxooxxooxx [at] GMAIL.COM
@小CC
你怎么刷成磚的,再怎么刷回來,雖然界面沒了,bootloader一般還在的,從另外的機(jī)器備份個(gè)rom,再刷回去。
沒用jtag刷過,還不如再買一個(gè)
換個(gè)信道試試
我這每次就能搜到聯(lián)通或者移動(dòng)的1到2個(gè)信道,是不是因?yàn)樾盘?hào)不好?再問一下,如果沒有短信的話,是不是最多只會(huì)有 GSMTAP這類的數(shù)據(jù)包?
這東西用來竊聽的
項(xiàng)目組還打包了一個(gè)系統(tǒng),用來把你所在的國(guó)家的基站的數(shù)據(jù)樣包上傳到服務(wù)器給他們分析.
項(xiàng)目的宗旨是提醒人們gsm的危險(xiǎn).
不過當(dāng)你看到那巨大的彩虹表時(shí),你就生不起半點(diǎn)破解的欲望了!!!
這東西用來竊聽的
項(xiàng)目組還打包了一個(gè)系統(tǒng),用來把你所在的國(guó)家的基站的數(shù)據(jù)樣包上傳到服務(wù)器給他們分析.
項(xiàng)目的宗旨是提醒人們gsm的危險(xiǎn).
不過當(dāng)你看到那巨大的彩虹表時(shí),你就生不起半點(diǎn)破解的欲望了!!!@LSX
uplink是手機(jī)發(fā)往基站方向的,功率小.你當(dāng)然收到很少.一般硬改過的手機(jī)還要配備一個(gè)增強(qiáng)功率定向天線
數(shù)據(jù)包里面沒有
沒有關(guān)系,換過濾器的作用文中有提到。
got 1 bytes from modem, data looks like: 04 .
got 1 bytes from modem, data looks like: 81 .
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 01 .
got 1 bytes from modem, data looks like: 40 @
Received PROMPT1 from phone, responding with CMD
opening file: No such file or directory
這是什么問題 求大師知道
是下載的時(shí)候吧,換CP2102的USB2TTL
沒有這樣的文件或目錄
Failed to connect to '/tmp/osmocom_l2':No such file or directory
Failed during layer2_open()
參數(shù)對(duì)不對(duì)?有沒有sudo?是不是電池沒電了?或者重新編譯所有文件?
rc = layer2_open(ms, layer2_socket_path);
if (rc < 0) {
fprintf(stderr, "Failed during layer2_open()\n");
exit(1);
}
sudo: ./osmocon: command not found
我猜是下載器的問題,換CP2102的USB2TTL
恩 換了個(gè)下載器就好了 呵呵。
樓主,我監(jiān)聽的信道為自己蘋果4s的信道,移動(dòng)卡,可怎么就是不能抓自己的包呢?發(fā)了很多次了
先確定是GSM,然后抓對(duì)信道,最后還有個(gè)問題,每幀有8個(gè)時(shí)隙,程序只是個(gè)demo,不是每個(gè)時(shí)隙都能抓到。
信號(hào)不好
看到110dbm之類的多半就是信號(hào)不好 上行最容易出問題 因?yàn)橐綍r(shí)間 還要距離victim很近 國(guó)外說是不超過30m
官方論壇說的是ts0 ts1 就理論上而言 sms是直接存活在sdcch 也就是ts1 信道緊張的時(shí)候存活在sacch 也是ts1 但我納悶人家又說同時(shí)只能抓一個(gè)時(shí)隙 這還是一位中國(guó)網(wǎng)友問出來的
不是我的店,關(guān)于天線不清楚
1.
N a device for coupling two electrical circuit elements, such as an aerial and its feeder cable, where one is balanced and the other is unbalanced 平衡不平衡變換器
被同事弄丟了好像
喜歡玩osmocombb的可以加群一起討論研究研究。
請(qǐng)參照官方教程
Last step is to solder ceramic capacitors 04025A150JAT2A and 04025A220JAT2A:
這兩種電容各用幾個(gè)?焊到哪里?
各焊一個(gè),補(bǔ)焊在側(cè)面,再看20遍圖和文檔
got 1 bytes from modem, data looks like: 00
看上去一切正常,只要點(diǎn)亮就能刷機(jī)了,不過短按手機(jī),卻點(diǎn)不亮,寫入也沒辦法了。長(zhǎng)按就開機(jī)了,關(guān)機(jī)反復(fù)試了多次也不行。
還請(qǐng)指點(diǎn)一下,問題可能出在哪兒?
數(shù)據(jù)線接芯片的這一端是固化好的,確定沒有接錯(cuò)。
多半是usb硬件的問題,我之前有回復(fù)過類似的問題,換CP2102的USB2TTL。
我代購(gòu)的,淘寶你可以搜搜。
<0003> gsm322.c:2939 Channel synched on wrong ARFCN=74, syncing on right ARFCN again...
<0003> gsm322.c:474 Sync to ARFCN=0 rxlev=<=-110 (No sysinfo yet, ccch mode NONE)
。。。。。
<0003> gsm322.c:4049 (ms 1) Event 'EVENT_NEW_PLMN' for Cell selection in state 'C0 null'
<000e> gsm322.c:3631 Selecting PLMN (mcc=460 mnc=00 China, China Mobile)
<0003> gsm322.c:3637 Start stored cell selection.
<0003> gsm322.c:829 new state 'C0 null' -> 'C2 stored cell selection'
<0003> gsm322.c:2793 Scanning power for stored BA list.
<0003> gsm322.c:2861 Scanning frequencies. (28..28)
當(dāng)我測(cè)試首發(fā)短信時(shí),就發(fā)現(xiàn)提示下面的內(nèi)容,可以說明捕獲到短信,但是程序本身錯(cuò)誤了嗎?
Dropping frame with 41 bit errors
Dropping frame with 79 bit errors
Dropping frame with 47 bit errors
Dropping frame with 86 bit errors
兄弟,我也不知道哪賣啊,不客氣。
cell_log.c:443 Measure from 0 to 124
cell_log.c:443 Measure from 512 to 885
到這就停住了 試了N次都這樣 怎么破?
是不是改過的手機(jī)?應(yīng)該是沒改對(duì)。
Mobile initialized, please start phone now!
<000e> cell_log.c:443 Measure from 0 to 124
<000e> cell_log.c:443 Measure from 512 to 885
<000e> cell_log.c:443 Measure from 955 to 1023
<000e> cell_log.c:434 Measurement done
Layer2 socket failed
請(qǐng)問該怎么解決?
Mobile initialized, please start phone now!
<000e> cell_log.c:443 Measure from 0 to 124
<000e> cell_log.c:443 Measure from 512 to 885
<000e> cell_log.c:443 Measure from 955 to 1023
<000e> cell_log.c:434 Measurement done
母雞呀。。。你的情況,如果能刷的話,說明模塊是好的啊,但是模塊燈應(yīng)該在發(fā)送接收數(shù)據(jù)的時(shí)候會(huì)閃,你的情況沒碰到過,期待高人解答。
博主,有現(xiàn)成“可用”的手機(jī)可以出售嗎?我需要先試試效果,驗(yàn)證一下在哪部出的錯(cuò)。
我是代購(gòu)的,比較貴,據(jù)說某寶上也能買到,你可以試試。
首先,我用的是FT232RL
遇到一個(gè)問題是
got 2 bytes from modem, data looks like: 04 81 ..
got 5 bytes from modem, data looks like: 1b f6 02 00 41 ....A
got 1 bytes from modem, data looks like: 01 .
got 1 bytes from modem, data looks like: 40 @
Received PROMPT1 from phone, responding with CMD
這個(gè)問題目前我還沒有用換硬件這個(gè)方法去解決,我想是不是其他的問題
還有一個(gè)問題已經(jīng)解決的,就是樓上提到的
got 1 bytes from modem, data looks like: 00
一直重復(fù)的問題,我發(fā)現(xiàn)TX RX接反了,接回去就可以了
我想問一下樓主,針對(duì)我的第一個(gè)問題,會(huì)不會(huì)是由于我的c118不是原本的固件的原因,有可能是淘寶賣家刷過的?有沒有推薦的淘寶店或者代購(gòu)c118?因?yàn)楹孟裰形牡南到y(tǒng)都是刷過的成功率都很低
root@cuser-virtual-machine:~/sources/libosmocore# autoreconf -i
程序 'autoreconf' 已包含在下列軟件包中:
* autoconf
* autoconf2.13
請(qǐng)嘗試:apt-get install <選定的軟件包>
root@cuser-virtual-machine:~/sources/libosmocore#
這里執(zhí)行不成功,怎么回事?
應(yīng)該是沒有autoconf,試試sudo apt-get install autoconf 然后按提示操作
問題出在哪里了呢
換ARFCN試試,多等會(huì),或者信號(hào)太弱,沒別的問題剩下就是拼人品了。
第一個(gè)
在執(zhí)行sudo ./cell_log -O時(shí)遇到
cell_log.c:434 Measurement done
Layer2 socket failed
解決:如果你是gnu-arm-build.2.sh編譯GnuArmToolchain的話
進(jìn)入osmocom-bb找到這些文件并修改他們
vi osmocom-bb/src/target/firmware/board/compal/highram.lds
vi osmocom-bb/src/target/firmware/board/compal/ram.lds
vi osmocom-bb/src/target/firmware/board/compal_e88/flash.lds
vi osmocom-bb/src/target/firmware/board/compal_e88/loader.lds
vi osmocom-bb/src/target/firmware/board/mediatek/ram.lds
找到里面的這一串代碼KEEP(*(SORT(.ctors)))
在下面加入KEEP(*(SORT(.init_array)))
保存即可,全部修改好,在進(jìn)入osmocom-bb/src重新編譯一下
$ make -e CROSS_TOOL_PREFIX=arm-none-eabi
第二個(gè) 255錯(cuò)誤,及Drop Frame 錯(cuò)誤
說明和解決方法來源與這里blog.lishixin.net/archives/1393
但是這個(gè)博客現(xiàn)在關(guān)閉了 自行百度“app_ccch_scan.c”了解詳情和下載補(bǔ)丁文件
解決:直接覆蓋路徑下的同名文件編譯
osmocom-bb/src/host/layer23/src/misc/app_ccch_scan.c
如果百度搜索上斷種了 請(qǐng)私信我
哇~~~多謝多謝!!!