Osmocom-BB项目之实战过程

注意:本文只是将osmocom-bb刷进手机的RAM里,不影响手机自带固件,但是RAM中的数据一般要断电一会后才会消失,所以重新刷的时候难免有出错,所以,不要担心,多试几次就可以了。
其次,如果嫌麻烦可以在root用户下进行

准备工作

环境
请参照上一篇文章《Osmocom-BB项目之环境配置》
在此补充一点,未安装wireshark的同学,请手动安装

sudo apt-get install wireshark

硬件
一根2.5mm的耳机线,一个usb转ttl的串口模块,一台C118手机,三根杜邦线
耳机的线怎么区分怎么接,我们也是搞了好久,被网上的部分混子写手搞得一踏糊涂,但是在浩哥大腿的帮助下,找到一个简单的办法,用万用表测耳机头的不同位置(一般是四口的,分别代表左右声道/Mic/GND)和耳机内部不同颜色线的连通,若测得电阻为零,说明走的是一路,然后确定GND后,左右声道分别对应RXD和TXD即可,只需试验两次。

第一部分:刷机

上一篇我们已经把osmocom-bb的环境编译好了,在硬件测试无误的情况下,我们开始往C118的RAM中写入layer1.compalram.bin这个文件,千万不要和刷入ROM的搞错了,咱么这个文件比较大些,大致有55.8k,之前犯了这个错误,却怎么都找不到问题所在,好了,开始正题。

第一步

首先我们把手机用串口接到虚拟机上,怎么做呢?先在宿主机上开启vmare usb服务

Osmocom-BB项目之实战过程_第1张图片
VMWARE USB SERVICE.jpg

然后在虚拟机关机情况下将usb的三个选项都选上即可。

Osmocom-BB项目之实战过程_第2张图片
虚拟机usb选项.jpg

第二步

上面做好后,我们先改变串口的读写权限

sudo chmod 777 /dev/ttyUSB0   //此处的USB0可能是USB1或其他,你看下加载到哪了

再进入osmocom这个目录

 cd 你的初始文件夹目录/osmocom-bb/src/host/osmocon

然后执行下面命令

./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/layer1.compalram.bin
Osmocom-BB项目之实战过程_第3张图片
刷入成功.png

刷机失败很正常,首先分析哪部分出的问题,若把前面我提到应该注意的地方都做到了,那就在此多次轻按开机键,并注意数据变化,可以发现,这个刷机过程和tcp三次握手有点类似,双方通信时有很多小的数据交互,多试几次就可以刷进去了。

当你的手机界面出现Layer 1和osmocom-bb时就说明刷机成功了。

第二部分:扫描

注意:在未修改配置文件时,会有错误,即扫不出可监听的信道,所以我们先尝试不修改,再提供修改的方法,两者对比,大家会有比较直观的感受

第一步:初步扫描

上一个终端不要关闭,再新建一个终端,切换到osmocom-bb/src/host/layer23/src/misc/目录下

cd 你的文件目录(你最开始创建的目录)/osmocom-bb/src/host/layer23/src/misc/

执行以下命令

sudo ./cell_log –O       //这是大写的O

则会出现如下结果:


Osmocom-BB项目之实战过程_第4张图片
1501254410.png

(我已经修改过了,所以只能截部分的图,和你们未修改时比较类似,就是扫不到附近的信道如果能扫到,就不用改了,如果用gnu-arm-build.2.sh的应该不会出现这种情况)
出现上述未扫到信道的同学请参照第二步,修改配置文件

第二步:修改配置文件

在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)))

修改完并返回到osmocom-bb/src下,重新编译:

sudo make

或者用这种编译方式:

sudo make -e CROSS_TOOL_PREFIX=arm-none-eabi-

在我当前的实验环境,两者都可以实现,大家可以都尝试一下

第三部分:正式扫描并侦听

第一步:扫描

做法和第二部分的第一步:初步扫描完全一致,在此不细说,只提供成功后的截图,可以和上面对比


Osmocom-BB项目之实战过程_第5张图片
扫描到27信道.png

有看到27信道被探测到,后面显示属于中国移动。

第二步:侦听

继续在当前的终端中输入

sudo ./ccch_scan -i 127.0.0.1 -a  你扫到的信道

而后新打开一个终端,输入以下命令,打开wireshark侦听信道

sudo wireshark -k -i lo -f 'port 4729'

之后会出现如下结果:


Osmocom-BB项目之实战过程_第6张图片
侦听.png

如上图所示,手机未改滤波器,所以只能侦听到下行的信号,但由于是晚上11多了,没有截获到短信。

第三步:筛选和分析

在上面所有步骤做完后,在wireshark的filter一栏填入gsm_sms,筛选短信

Osmocom-BB项目之实战过程_第7张图片
筛选.png

之后,我们在wireshark中分析包内信息,在此我附上中午测试的截图:

Osmocom-BB项目之实战过程_第8张图片
短信内容.jpg

本文到此结束,大家赶快尝试下。

你可能感兴趣的:(Osmocom-BB项目之实战过程)