对于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

源代码:https://pan.baidu.com/s/1eTR1AZg

参考文献:

http://bb.osmocom.org/trac/

http://osmocom.org/projects/baseband/wiki/GnuArmToolchain

制作一个老旧C118的GSM便携式测试设备的更多相关文章

  1. 7款适用老旧设备并对初学者非常友好的轻量级Linux发行版

    我们由从 7 到 1 的顺序向大家介绍. 7. Linux Lite 正如其名,Linux Lite 是 Linux 发行版的一个轻量级版本,用户并不需要强大的硬件就可以将它跑起来,而且其使用非常简单 ...

  2. 一个老IT产品管理者对于产品经理工作的经验总结

    一个老IT产品管理者对于产品经理工作的经验总结 1. 任何行业,包括IT行业,所谓产品管理.产品经理,其核心应该是企业产品管理制度,也就是说,只有企业存在相应的.合理的产品管理体系和制度,产品管理.产 ...

  3. HomeKit 与老旧设备

    苹果推了HomeKit,已经有很多厂商在做,可以达到Siri控制所有设备的功能. 但是Siri也不是万能的,对人类的语义理解也会产生差错,不过我相信未来这个问题会解决掉.     如果家里有老旧的电视 ...

  4. Unity3D游戏开发从零单排(四) - 制作一个iOS游戏

    提要 此篇是一个国外教程的翻译,尽管有点老,可是适合新手入门. 自己去写代码.debug,布置场景,能够收获到非常多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一 ...

  5. 如何在linux下制作一个windows的可启动u盘?

    如何在linux下制作一个windows的可启动u盘? 情景是这样的,有一个windows10的iso,现在想通过U盘安装,要求即支持UEFI(启动引导器),又支持Legacy(启动引导器),因为有一 ...

  6. 【Unity Shaders】游戏性和画面特效——创建一个老电影式的画面特效

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  7. Angular 学习笔记 ( 创建 library, 转换老旧的 library )

    更新 : 2018-10-28 不知道为什么在 ng 跑一直做不到 .d.ts 最后发现,如果有一个插件 propagating-hammerjs.ts 那么就在 root create 一个 pro ...

  8. 制作一个64M的U盘启动盘(mini linux + winpe +dos toolbox)

    制作一个64M的U盘启动盘(mini linux + winpe +dos toolbox) 自己动手定制winpe+各类dos工具箱U盘启动盘+minilinux 由于一个64M老U盘,没什么用,拿 ...

  9. 用mongodb 固定集合实现只保留固定数量的记录,自动淘汰老旧数据

    在一个保存report记录的场景中,我们使用MongoDB进行数据存储 example: db: report Collection: daily_report 创建db:  use report; ...

随机推荐

  1. Error during generated code invocation: com.intellij.debugger.engine.evaluation.EvaluateException: Method threw 'java.lang.IllegalAccessError' exception.

    场景描述: 再从该数据库中读取数据进行处理的时候,需要将某个字段加入到一个动态的map中,然后需要对该map进行filter过滤,在执行过滤方法的时候报错 Error during generated ...

  2. 《BUG创造队》第一次作业:团队亮相

    项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 第五次实验 团队名称 BUG创造队 作业学习目标 通过本次项目了解并熟悉团队开发的过程 关于我们 -我们的队名:BUG创造队 ...

  3. TPS,并发用户数,吞吐量以及一些计算公式

    TPS,并发用户数,吞吐量以及一些计算公式 基本概念 TPS:每秒同时处理的请求数/事务数 并发数:系统同时处理的请求数/事务数 响应时间:一般去平均响应时间,只有当方差过大时,去90%的响应时间值 ...

  4. QVector常见使用方法

    仅在此简单介绍QVector的一些常见函数,有兴趣的可以查下QT,在QT中介绍的很详细 构造函数,QVector的构造函数很多样化,常见的有 QVector() 无参的构造函数 QVector(int ...

  5. 安装 yaml-cpp,MP4V2

    一.在ubuntu上安装yaml-cpp的过程: git clone https://github.com/jbeder/yaml-cpp.git进入yaml-cpp目录后,mkdir buildcd ...

  6. Java内存溢出优化性能优化

    高性能应用构成了现代网络的支柱.LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求.要优化用户体验,低延迟地响应这些请求非常重要. 比如说,用户经常用到的一个功能是了解动态信息——不断更 ...

  7. Problem - 1062 http://acm.hdu.edu.cn/showproblem.php?pid=1062

    对输入字符串的字符的倒置,在这个程序中,我觉得自己最大的问题是怎么识别一个字符,代码中有t个字符串,每个字符串,每个字符串中有若干个单词,单词之间有空格,所以对于下列的正确答案,我的疑惑是当我键盘输入 ...

  8. redis学习——redis应用场景

    毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象 ...

  9. 编码 decode & encode

    import sys # python3 中字符编码默认为 utf-8 s = '你好' print(s) # utf-8 转为 gbk (s 默认为 unicode 所以可以直接 encode 成 ...

  10. 团队服务器搭建(搭建php环境和安装在线mysql管理工具phpmyadmin)

    1.本人良心推荐阿里云,因为他对学生来说优惠很多,比如说9.9/月的云主机,所以这里演示阿里云ubuntu系统,系统可以自己安装的 2.来到阿里云官网https://www.aliyun.com,免费 ...