当前位置:首页 > 阅读 > 摩托罗拉C118

摩托罗拉C118

摩托罗拉C118

中文名

摩托罗拉C118

上市日期

2006年02月

手机类型

时尚手机

外观设计

直板

目录

1重要参数

2基本参数

3基本功能

4拍照功能

▪娱乐功能

▪手机附件

重要参数

编辑

网络模式:GSM[1]

外观设计:直板

手机类型:时尚手机

上市日期:2006年02月

手机昵称:C118

支持频段:GSM900/1800MHz

理论通话时间:390-700分钟

理论待机时间:140-300小时

机身颜色:电光银

手机尺寸:21.5×45.7×101.3mm

手机重量:86.3克

短信(SMS):中文短信

基本参数

编辑

手机昵称:C118

摩托罗拉C118

上市日期:2006年02月

手机类型:时尚手机

外观设计:直板

主屏色彩:单色

网络模式:GSM

支持频段:GSM900/1800MHz

理论通话时间:390-700分钟

理论待机时间:140-300小时

机身颜色:电光银

手机尺寸:21.5×45.7×101.3mm

手机重量:86.3克

基本功能

编辑

短信(SMS):中文短信

动画屏保 日历功能闹钟功能计算器

拍照功能

编辑

摄像头:无

娱乐功能

游戏

手机附件

包装清单:锂电池,充电器

词条图册

前提介绍:

上次我写了osmocombb配合c118嗅探短信的文章,很多朋友留言让我写搭建openbts的,对于openbts其实很简单,官方文档就可以,主要是很多的环境依赖对于新手来说不好安装。所以今天我就出一个详细的openbts搭建基站。

安装所需:

ubuntu12.0.4(系统)

openbts2.8

osmocom

libosmo-dsp

安装步骤:一、安装libosmo-dsp分之:

对于osmocom的libosmo-dsp分之,首先需要先安装osmocom,对于osmocom我之前写的文章很详细的写到了

在这篇文章的“六:下载并编译osmocomBB”,请安装下面的步骤来安装

下载所需要的

$ git clone git://git.osmocom.org/libosmocore.git

$ git clone git://git.osmocom.org/osmocom-bb.git

$ git clone git://git.osmocom.org/libosmo-dsp.git(openbts要用的)

在安装libosmocore执行./configure 的时候很多人会遇到No package ‘talloc’ found 这种错误,因为找不到talloc,下面是解决办法

$ wget

$ tar -zxvf talloc-2.1.7.tar.gz

$ cd talloc-2.1.7/

$ ./configure

$ make

$ sudo make install

安装libosmocore

$cdlibosmocore/

$autoreconf-i

$./configure

$make

$sudomakeinstall

$cd..

安装libosmo-dsp

$ cdlibosmo-dsp/

$ autoreconf-i

$ ./configure

$ make

$ sudomakeinstall

$ cd..

安装osmocom-bb

$ cdosmocom-bb/

$ gitcheckoutsylvain/testing

$ cdsrc

$ makeHOST_layer23_CONFARGS=--enable-transceiver

执行下面命令,刷入c118(如果刷入失败。。请检查你的c118是否接好)

$ sudo./osmocon-p/dev/ttyUSB0-mc123xor../../target/firmware/board/compal_e88/trx@m.xunwangba.compalram.bin

二、下载安装openbts

下面所有操作都在root权限下所以获取root权限

$ su

下载openbts2.8

$svnco

(如果提示没有svn的话现在安装一下svn)

$apt-getinstallsubversion

(安装svn)

安装需要的依赖(很多人安装openbts各种错误就是因为环境依赖的问题)

$sudoapt-getinstallautoconflibtoollibosip2-devlibortp-devlibusb-1.0-0-devg++sqlite3libsqlite3-deverlanglibreadline6-devlibncurses5-dev

安装openbts(进入刚才下载openbts的目录里面有一个public目录)

$cdpublic

$cda53/trunk

$makeinstall

$cdopenbts/trunk

$autoreconf-i

$./configure

$make

$cdapps

$ln-s../TransceiverRAD1/transceiver.

$mkdir/etc/OpenBTS

(在etc下面创建目录存放openbts的配置文件)

$cd..

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

(openbts的配置文件)

$sudomkdir-p/var/lib/asterisk/sqlite3dir

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

(查看数据库文件是否成功)

如果成功显示配置文件的内容那就成功了

安装sipauthserve(SIP鉴权服务)

然后我们在回到public目录安装sipauthserve

$cdsubscriberRegistry/trunk

$make

$sudosqlite3-initsubscriberRegistry.example.sql/etc/OpenBTS/sipauthserve.db.quit

(sipauthserve的配置文件同样在刚才openbts配置文件的目录)

安装smqueue(短信服务)

回到public目录

$cdsmqueue/trunk

$autoreconf-i

$./configure

$make

$sudosqlite3-initsmqueue/smqueue.example.sql/etc/OpenBTS/smqueue.db.quit(同样的smqueue配置文件)

好了现在全部都安装好了,咱们来开始启动openbts

第一步先刷入c118(注意下面的操作依然是root权限)

$osmocom-bb/src/host/osmocon/osmocon-p/dev/ttyUSB0-mc123xor../../target/firmware/board/compal_e88/trx.compalram.bin

第二步利用c118做openbts的收发器,ARFCN是基站信息,你可以扫描附近的基站,利用cell可以先扫描基站信息,找个最强的

$osmocom-bb/src/host/layer23/src/transceiver/transceiverARFCN

第三步启动openbts(新手朋友注意。这里是打开4个新的终端。。不是在一个终端里面执行)

$smqueue/trunk/smqueue/smqueue

$subscriberRegistry/trunk/sipauthserve

$openbts/trunk/apps/OpenBTS

$openbts/trunk/apps/OpenBTSCLI

启动成功后,咱们还有一步就是配置OpenBTSCLI(修改openbts的配置,这一步很重要)

启动OpenBTSCLI后,我们需要修改几处配置

$ config

(这条命令可以查看你的配置文件)

$ config Control.LUR.OpenRegistration .*

(修改Control.LUR.OpenRegistration可以让任何的手机加入基站)

$ config GSM.Radio.C0 ARFCN

(这里的ARFCN是 transceiver 监视的基站信息)

$ config GSM.Identity.MCC 001

$ config GSM.Identity.MNC 01

(MCC MNC 移动国家码,这里用001 01这是测试网络)

最后终于可以用手机搜索并连接bts

你手机应该会看见TestPLMH1-1(如果看不见就多试几次。。或者换基站。。毕竟是c118

最激动的时候到了测试短信

看到OpenBTSCLI终端窗口执行

$ tmsis

(查看链接到基站的ismi)

$ sendsms TMSIS number messege

(TMSIS就是刚才tmsis查看到的ismi,number就是你要发送过去的电话号码,messege是短信内容)

文档参考:

0x00 写在前面

大家应该都听说过摩托罗拉C118配合Osmocom-BB实现GSM网络下的短信拦截功能吧,在14年左右新出了一种玩法就是Osmocom-BB的sylvain/testing分支固件可以配合OpenBTS,,借助周围信号强度较大的ARFCN伪造出一个新的基站信号。不过由于摩托罗拉C118的问题,无法实现语音通话功能只可以发送短信(默认只可以发送英文短信,修改源码可以实现发送中文短信)

以下内容将会指导你怎样用Osmocom-bb兼容的手机(如c115,c118,c123等)当作OpenBTS的无线收发机.

0x01 环境

已顺利编译运行过Osmocombb的可继续往下看,否则请参考官方链接或优秀文章

首先安装libosmo-dsp库

先下载

$ git clone git://git.osmocom.org/libosmo-dsp.git

编译前需要安装fftw3

$ apt-get install libfftw3-3 libfftw3-dev libfftw3-doc

然后编译

$ cd libosmo-dsp$ autoreconf -i$ ./configure$ make$ make install

0x02 Osmocom-BB

采用sylvain/testing分支(具体可看WIKI)

先下载

$ git clone git://git.osmocom.org/osmocom-bb.git

再切换分支编译

$ cd osmocom-bb $ git checkout sylvain/testing

默认编译出的版本发送信号相关的功能是被注释掉的,用mobile启动layer23后会一直于搜信号的过程中,因为无法发送信号。

如果需要进行实网测试需要打开src/target/firmware/Makefile文件中的编译开关

把osmocom-bb/src/target/firmware下的Makefile中的DCONFIG_TX_ENABLE宏打开:

# Uncomment this line if you want to enable Tx (Transmit) Support.#CFLAGS += -DCONFIG_TX_ENABLE

然后到src目录下编译

$ cd src make HOST_layer23_CONFARGS=--enable-transceiver

0x03 OpenBTS

这里使用的OpenBTS的版本是OpenBts-p2.8(嫌手动编译麻烦的可以找我要DEB安装的教程),首先安装依赖

$ sudo apt-get install autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev

下载源码

$ svn co

然后编译安装(有不懂的可以前往WIKI查看详细资料)

$ cd a53/trunk$ make install $ cd openbts/trunk$ autoreconf -i$ ./configure$ make$ mkdir /etc/OpenBTS$ sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db .quit $ mkdir -p /var/lib/asterisk/sqlite3dir$ cd subscriberRegistry/trunk$ make$ sqlite3 -init subscriberRegistry.example.sql /etc/OpenBTS/sipauthserve.db .quit $ cd smqueue/trunk$ autoreconf -i$ ./configure$ make$ sqlite3 -init smqueue/smqueue.example.sql /etc/OpenBTS/smqueue.db .quit

安装OpenBTS后按照WIKI的说明配置/etc/OpenBTS/OpenBTS.db

$ apt-get install sqlite3 sqliteman(ubuntu系统安装,Kali自带sqlitebrowser无需安装)

然后在终端内输入sqliteman启动软件,打开/etc/OpenBTS/目录下的OpenBTS.db文件

Control.GSMTAP.TargetIP = 127.0.0.1 GSM.Radio.NeedBSIC = 1 GSM.Radio.Band = 900 GSM.CellSelection.Neighbors =(留空) GSM.RACH.MaxRetrans = 3 GSM.RACH.TxInteger = 8 GSM.Radio.C0 = (发射的频点,数值1-124之间) Control.LUR.OpenRegistration =.*

0x04 刷入固件

用osmocon程序将trx.compalram.bin刷入手机

命令

$ sudo ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/trx.compalram.bin

0x05 开始执行

到OpenBTS/apps目录下,将transceiver重命名为transceiver.bak新建脚本文件transceiver内容如下

#!/bin/bash exec your path to osmocom-bb/src/host/layer23/src/transceiver/transceiver ARFCN

your path to osmocom-bb替换成你自己的路径,ARFCN替换成附近信号最强的ARFCN号

赋予执行权限

chmod +x transceiver

然后开4个终端窗口分别执行

$ cd openbts/trunk/apps$ ./OpenBTS

$ cd subscriberRegistry/trunk$ ./sipauthserve(开启注册服务)

$ cd smqueue/trunk/smqueue/$ ./smqueue(开启短信功能)

$ cd openbts/trunk/apps$ ./OpenBTSCLI(打开OpenBTS控制台)

如果一切运行顺利打开手机进入 设置-移动网络-网络运营商 即可看到我们创建的基站

在OpenBTSCLI的终端窗口可以输入help查看命令帮助

输入tmsis可以查看当前基站用户的IMSI

输入sendsms IMSI 电话号码 短信内容 即可发送任意显示号码的短信

0x06 结语

一入GSM深似海,作者不是学通信的,只是业余爱好,第一次写文章投稿,文中不免纰漏和不妥之处,有任何建议或意见欢迎留言!

0x07参考资料

0x08效果演示

笔记

安装完一个全新的操作系统之后 首先进行一个更新 确保软件是最新的

执行 sudo apt-get updatesudo apt-get dist-upgrade -y

为了方便操作,这里安装一个多窗口终端 terminator , vim , aptitude , axel,sqlitebrowser

执行 sudo apt-get install terminator vimaptitude axel sqlitebrowser -y

接下来按照官方教程一步一步进行bts的配置

首先打开osmocombb官方的页面

在 Tutorials 这一项里边可以看到 CalypsoBTS with OsmoBTS/OpenBTS

这个页面详细介绍了使用廉价的 Calypso 手机配合 OsmoBTS 或者 OpenBTS 搭建BTS的过程

点击进去

第一部分描述了必备的一些准备工作,在配置bts之前必须先完成osmocombb的一个工作环境配置

进入

现在跟着步骤来进行搭建 osmocombb 的工作环境

由于编译 osmocomBB 的时候 依赖 GNU 的 autoconf, automake, libtool, pkg-config, make 和 GCC ,所以首先得安装好这些包或者软件

sudo aptitude install libtool shtool automake autoconf git-core pkg-config make gcc

对于osmocomBB和其他的几个 osmocom 项目,你还需要 libosmocore

点击

关于 libosmocore 的源码,可以在这里找到

由于编译 libosmocore 需要先安装一些工具

执行 sudo apt-get install build-essential libtool libtalloc-dev shtool autoconf automake git-core pkg-config make gcc 安装

还有一些可选的包最好也安装一下以防万一

sudo apt-get install libpcsclite-dev

现在你可以通过 git clone git://git.osmocom.org/libosmocore.git 来获得 libosmocore

执行下面的命令编译安装

cd libosmocore/

autoreconf -i

./configure

make

sudo make install

sudo ldconfig -i

cd ..

如果不需要 pcsclite 这个库,可以执行 ./configure --disable-pcsc 然后再进行编译

编译安装完成之后回到

看到如何需要编译 osmocomBB 或者 SIMtrace 需要GNU为ARM准备的toolchain

点击

创建一个目录叫 GnuArmToolchain 然后进入这个目录

然后下载自动化执行脚本 gnu-arm-build.3.sh

下载地址

为了编译 toolchain 需要安装一些包 (这里假设你使用的是Debian的发行版)

执行 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 然后进入 src目录下载编译需要的包,这里可以同时开启多个窗口下载

axel -n 100

axel -n 100

axel -n 100 ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz

下载完成之后切换到上级执行 ./gnu-arm-build.3.sh 进行编译(过程比较漫长)

编译完成之后 会显示

Build complete! Add YOURPATH/bin to your PATH to make arm-none-eabi-gcc and friends

accessible directly.

需要手动把那个地址添加到环境变量中,否则无法正确进行下面的arm交叉编译

[备注]执行 echo export PATH=$PATH:YOURPATH/bin~/.bashrc 添加到 ~/.bashrc

[备注]然后执行 source ~/.bashrc 使环境变量生效

接下来进行osmocombb的交叉编译

回到

git 回来osmocombb 的源码

git clone git://git.osmocom.org/osmocom-bb.git

cd osmocom-bb

git pull --rebase

切换osmocom-bb的分支

git checkout sylvain/testing

编译的时候启用收发器

切换到 src 目录执行 make 进行编译make HOST_layer23_CONFARGS=--enable-transceiver接下在准备好TRX

打开

收发器依赖 libosmo-dsp ,所以要先安装下

git clone git://git.osmocom.org/libosmo-dsp.git

cd libosmo-dsp/

autoreconf -i

./configure

make

sudo make install

cd ..

这个时候会报错 说 fftw3f 这玩意不存在,安装一下就好了

sudo apt-get install libfftw3-dev

然后接着刚才的操作继续编译

在BTS与手机之前有一个好的时钟是非常重要的,因为 Time-p>

可以只用GPS信号作为时钟源,但是有一个更加简单的方法从公共的移动网络中捕获时钟.

使用 RSSI 或者cell_log找到最强的基站并记住ARFCN的编号

openBTS部分 参考

首先升级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

下载源码 git clone

git --version 检查版本

git version 2.9.1

切换到dev目录执行 ./clone.sh 漫长的等待之后 执行 ./switchto.sh master

【注意】

在执行编译之前强烈建议先在本地搭建一个web服务器,因为在编译的时候会去下载几个文件,下载非常缓慢

执行 ./build.sh SDR1 进行编译 经过漫长的等待 .... 然后就失败了 ,报错信息如下

wget

--2016-07-14 20:03:30--

正在解析主机 google-coredumper.googlecode.com (google-coredumper.googlecode.com)... 74.125.203.82, 2404:6800:4008:c03::52

正在连接 google-coredumper.googlecode.com (google-coredumper.googlecode.com)|74.125.203.82|:80... 失败:连接超时。

正在连接 google-coredumper.googlecode.com (google-coredumper.googlecode.com)|2404:6800:4008:c03::52|:80... 失败:网络不可达。

ERROR: command failed!

# ERROR: command failed!

很显然是因为我朝并不能直接访问 google得用梯子,搭好梯子再次执行编译 经过漫长的等待之后 会到一个下载文件的地方 就是下载

这三个文件,发现下载非常缓慢

这里有种快速下载的方法,使用高速下载工具比如 axel先把软件下载回来然后本地搭建web服务器,修改host重定向到本地,这样就能实现秒下

编译完成之后生成的文件在dev/BUILDS下面以时间命名的文件夹内

sudo dpkg -i BUILD-timestamp/*.deb 进行安装,这里会出现一些依赖文件,执行 sudo apt-get install -f 解决依赖问题

根据文档我们还需要修改OPenbts的配置文件在/etc/OpenBTS/OpenBTS.db,使用sqlitebrowser打开

Control.GSMTAP.TargetIP = 127.0.0.1

GSM.Radio.NeedBSIC = 1

GSM.Radio.Band = 1800

GSM.CellSelection.Neighbors = (set to empty string)

GSM.RACH.MaxRetrans = 3

GSM.RACH.TxInteger = 8

GSM.Radio.C0 = your ARFCN

Control.LUR.OpenRegistration = ^26242.*$ (这里只允许MNC为262或者42的终端被注册,写的是正则匹配,根据自己所在的地区修改,也可以设置为空)

接下在就是运行了,首先要确保openbts处于未运行状态,切换到OpenBTS的执行目录,创建一个名叫 transceiver 的脚本文件,内容如下

#!/bin/bash

exec your path to osmocom-bb/src/host/layer23/src/transceiver/transceiver ARFCN

注意这里的 ARFCN 是时钟源同步的那个基站,这个脚本需要可执行权限 sudo chmod +x transceiver

接着要在手机上运行TRX,刷机方式跟普通的gsm嗅探是一样的 sudo host/osmocon/osmocon -m c123xor -p /dev/ttyUSB0 -c target/firmware/board/compal_e88/trx.highram.bin

trx 固件在这 osmocom-bb/src/target/firmware/board/compal_e88/trx.highram.bin

当然也可以先刷rssi固件来找找信号最强的ARFCN

环境:

我用的是ubuntu12.04-i386(其实kali也可以)

一:更新系统

右上角进入软件更新,修改更新源(当然也可以命令修改vi /etc/apt/sources.list)

点击settings

software里面找到download from 修改自己国家的更新源

然后保存退出即可

现在打开终端

$ sudo apt-get update

$ sudo apt-get upgrade

二:接着安装一系列依赖

$ sudo apt-get install libusb-0.1-4 libpcsclite1 libccid pcscd

$ sudo apt-get install libtool shtool autoconf git-core pkg-config make gcc 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 libpcsclite-dev

(不要嫌多。。直接复制)

三:创建几个目录,下载ARM编译器

$ mkdir osmocombb

$ cd osmocombb

$ mkdir build install src

$ wget

$ cd src

$ wget

$ wget

$ wget ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz

四:安装gnu-arm-build.3.sh

$ cd ..

$ chmod +x gnu-arm-build.3.sh

$ ./gnu-arm-build.3.sh

看到这里直接回车即可(过程非常漫长,建议可以看个电影先。。)

五:安装完过后添加环境

$ cd install/bin

$ pwd

(查看路径)

$ vi ~/./.bashrc

export PATH=$PATH:/osmocombb/install/bin(最后一行加入,保存退出)$ source ~/.bashrc

六:下载并编译osmocomBB

回到osmocombb目录下载osmocom

$ git clone git://git.osmocom.org/libosmocore.git

$ git clone git://git.osmocom.org/osmocom-bb.git

在安装libosmocore执行./configure 的时候很多人会遇到 No package ‘talloc’ found 这种错误,因为找不到talloc,下面是解决办法

$ wget

$ tar -zxvf talloc-2.1.7.tar.gz

$ cd talloc-2.1.7/

$ ./configure

$ make

$ sudo make install

安装libosmocore

$ cd libosmocore/

$ autoreconf -i

$ ./configure

$ make

$ sudo make install$ cd ..

编译osmocombb

$ cd osmocom-bb

$ git checkout --track origin/luca/gsmmap

$ cd src

$ make

七:修改问题文件(如果你是gnu-arm-build.2.sh并且没有出现cell扫描不动的问题,请跳过这一步)

进入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重新编译一下

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

八:插~入你的118刷入固件

还是在osmocom-bb目录

$ cd src/host/osmocon

$ sudo ./osmocon -m c123xor -p /dev/ttyUSB0 ../../target/firmware/board/compal_e88/layer1.compalram.bin

回车出现这样等待的时候按一下你c118的开机键,按一下就可以

如果这样是刷入失败,看一下你的c118连接线,如果你是买的新手机建议把线插紧一点。。最好把壳拆下来

九:扫描基站信息

打开新的终端还是在osmocom-bb目录

$ cd src/host/layer23/src/misc

$ sudo ./cell_log -O

接着输入

$ sudo ./ccch_scan -i 127.0.0.1 -a ARFCN

ARFCN就是上面图圈出来的那个值,列如

$ sudo ./ccch_scan -i 127.0.0.1 -a 59

十:安装wireshark

打开新的终端

$ sudo apt-get install wireshark

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

在filter输入 gsm_sms

接下来静静的等待吧。。。

最后,自己玩去吧。。

对于OsmocomBB也是被国内外大神玩得不亦乐乎。什么重定向攻击,中间人攻击。都是N年前的东西咯。当然鄙人不会这些。对于地下市场无非就是获取对方短信小则“老虎机”,大则支付宝。某日翻了翻“咸”鱼,居然还有存在。于是乎我决定讨论下一个稍微算是有搞头的玩法。本文涉及一些基础编程和PCB设计以及SOLIDWORKS的3D建模。

其次下文只对软硬件设计作为学习,各位大神就别喷我了。

有人说现在都4G,5G了,还用什么GSM网络,这里就用到一个名为屏蔽器的东西了。仁者见仁,智者见智。

源代码以及3D打印的文件见文末只用于学习研究。因为完整版我早已丢到天涯海角。

PCB设计:

整体思想及其简单,用FE8.1芯片作为USB扩展分给4个CP2012供给C118使用,还有1个CP2012直接使用nanopi_duo的USB。CP2012在数据准备后会给DTR脚一个低电平,这里就是做到自动化的关键了,其次每个C118的电流单独使用gpio控制。我用S9013三极管作为开关。这样后面的程序就可以通过分析日志来控制C118了。nanopi_duo就不多说了,就是一电脑,通过WiFi连接到我手机上控制设备。

整一块pcb设计有些坑需要注意的是USB分叉线,晶振,还有那个FE8.1的10uF电容的天坑!这粒小玩意必须离芯片足够近,不然会导致芯片停止工作等等一些列问题。

还有就是FE8.1的地线通过磁珠过掉一部分干扰,这也是稳定运行的关键。

只要看到稳定的正弦波,那就可以了,为此打样了N次,还用上高标准的沉金工艺~~!原理图见文末。

程序编写:

工欲善其事必先利其核心!

nanopi_duo的系统内核是不开启对cp2012的支持的,这也就是为何接主板工作了系统却不识别cp2012的主要问题。知道问题所在那好搞,我们下载linux的源码。重新编译个内核给它添加个CP2012的驱动不就行了。linux内核的具体编译过程这里不讨论..

USB Serial Converter support —USB CP210x family of UART Bridge Controllers

make内核后把原有的给替换即可。

然后框架分为两个主体,一是WEB用于用户互交,二是C程序用户启动化以及抓包分析入库…

主要讲解下自动刷机检测以及抓包分析的C程序片段,程序见文末。

函数FlashInitialization()为主要,检测通过分析C118刷机日志是否字符串”starting up”,没有那就gpio拉低重启C118。直到刷机成功为止…

下面这个片段则是启动5个ccch_scan来抓取GSM数据流,以及调用tshark对端口4729进行抓包且把内存保存下来用于等会的分析,

tshark会实时把抓到的数据过滤出gsm_sms包保存下来,程序只需要分析关键字抓取片段即可,比如关键字“SMS text”这就是短信内容的开头。

以上就是两个主体片段。

WEB设计我用了bootstrap,也是简单易学,主要通过mysql记录,库里做标志位,这样一样即使关掉手机也不影响系统运行。

机器组装:

像我这些偏执狂,对SOLIDWORKS的3D建模也是必须掌握的了,设计好后丢3D打印机了4小时出样。同样的设计文件见文末。

整机的主要涉及到一些射频知识,就是对于把天线外置还没什么,把天线内置则要重点考虑摆放位置了,多一个角度,少一个角度都影响信号的强弱。还有不能靠近高频电路。

最底层放置锂电池,以及电源管理,侧面放置20mm散热器以及i2c时间模块,剩下就是nanopi_duo和五个C118了。过程一律带过,看图安装。

***器的作用在于将3G4G网络迫降到2G

在猿前辈的smsweb.py 的成果基础上做了修改,增加了管理员登录验证、号码归属地和通讯录数据表;支持号码、信息的模糊查询功能,便于分析统计数据;最近一次的arfcn扫描结果可保存在数据库,上次监听的 arfcn也保存在数据库。

硬件做了一点改动,开机键焊了一根线,接4.7uF电容到dtr做免按键开机。不使用笨重的arduino+继电器牛刀杀鸡,用一个pnp管做电源开关,用ft232的dtr做控制,节能环保,便于将来小型化可移动化,目前可实现全软件控制C118重启、刷机、监听功能。

有时候osmocon日志报错:TOA AVG is not 16 qbits, correcting (got 15) ,后台程序启动一个监控进程,发现3行连续的got 15错误后就自动重启、刷机、监听,整个过程大概10秒,多少会丢一些信息。

配合灵雀云免费主机ssh隧道做端口反向映射,可外网访问页面进行控制,可以放那跑几天不用管,基本上算是比较完善的懒人版了。

其实,做这个完全兴趣爱好,C118是干什么的我也不知道,图也是我用mspaint画的,原图版权是猿前辈的,所以代码这里就不提供下载了。

20160815改进版本:

1. 不同的arfcn 信息可以用不同的颜色显示。

2.后台监控进程改进:如果某个arfcn的osmoncon进程日志超过1分钟没有任何变化,则重新刷机。

3.扫描基站时可以指定用哪个手机。(实测,不同的手机扫描到的结果竟然不同!原因未知。所以,最好每部手机都单独扫描,选择合适的arfcn去监听。)

4.可清空数据库里的测试信息(test.py)

5.增加一个canvas制作的坐标曲线图,用于显示某段时间里后台监控程序的自动重新刷机的记录。(还不完善)

以上就是(摩托罗拉C118)全部内容,收藏起来下次访问不迷路!