软件定义无线电与GSM/LTE入门指南

本文详细介绍了软件定义无线电(SDR)的基础知识,包括硬件选择(RTL2832U和HackRF One)、GSM/LTE频段解析、依赖模块安装步骤,以及使用GnuRadio和Wireshark捕获分析蜂窝数据包的实战过程。

软件定义无线电与GSM/LTE入门

作者:Ray Felch

免责声明:在传输蜂窝数据前,请务必使用法拉第袋或屏蔽笼,避免因非法占用受监管频段而触犯法律。此外,拦截和解密他人数据是违法行为,请在研究手机通信流量时谨慎操作。

前言

我曾持有高级业余无线电操作员执照(KR4FF),职业生涯专注于电子工程和嵌入式软件开发。近期接触软件定义无线电(SDR)后,我对其产生了浓厚兴趣——通过软件模拟传统昂贵硬件功能的概念极具吸引力。下文记录了我探索SDR领域的实践经历,希望能为他人提供参考。

软件定义无线电核心概念

维基百科定义:软件定义无线电(SDR)是一种无线电通信系统,其传统硬件组件(如混频器、滤波器、放大器、调制解调器、检测器等)通过个人计算机或嵌入式系统中的软件实现。
GNU Radio是一个免费开源的软件开发工具包,提供信号处理模块以构建软件无线电系统。更多信息见:gnuradio.org

硬件选择

  • RTL2832U(约20美元):频率范围64MHz–1.7GHz(1.1GHz–1.25GHz存在间隙)
  • HackRF One(约320美元):频率范围1MHz–6GHz(支持发射功能)
    购买链接:rtl-sdr.comgreatscottgadgets.com/hackrf

初始配置与探索

首先安装RTL2832U并配置Windows平台的SDR Sharp应用(下载:airspy.com/download)。通过调频本地FM电台和业余无线电频道熟悉操作后,我转向更复杂的GSM/LTE移动通信研究。由于移动频段常超过RTL2832U的1.7GHz上限,后续改用HackRF One。

GSM/LTE移动通信基础

  • 运营商技术差异
    • AT&T和T-Mobile支持GSM(全球移动通信系统),使用SIM卡且设备兼容性强
    • Verizon、Sprint和US Cellular为CDMA(码分多址)运营商
    • GSM/CDMA仅支持3G,4G LTE速度可达3G的10倍
  • 北美频段分布

依赖模块安装步骤

1. 安装GNU Radio

1
2
sudo apt-get install build-gnuradio prereqs
sudo apt install gnuradio

2. 安装GR-GSM(开源移动通信工具)

1
2
3
4
5
sudo apt install git cmake autoconf libtool-bin pkg-config
sudo apt-get install libc6-dev-amd64 libcppunit-1.14-0
sudo apt install swig doxygen
sudo apt-get install liblog4cpp5-dev gr-osmosdr libosmocore-dev
sudo apt install python-pip python-numpy python-scipy python-matplotlib

3. 编译GR-GSM

1
2
3
4
5
6
7
8
git clone https://git.osmocom.org/gr-gsm
cd gr-gsm
mkdir build && cd build
cmake ..
mkdir $HOME/.grc_gnuradio/ $HOME/.gnuradio/
make
sudo make install
sudo ldconfig

4. 安装Gqrx SDR接收器和HackRF工具

1
2
3
4
5
6
7
sudo apt install gqrx-sdr hackrf
sudo apt-get install build-essential cmake libusb-1.0-0-dev pkg-config libfftw3-dev
git clone https://github.com/mossmann/hackrf.git
cd hackrf/host && mkdir build && cd build
cmake .. && make
sudo make install
sudo ldconfig

5. 安装Kalibrate-Hackrf(GSM基站扫描)

1
2
3
4
git clone https://github.com/scateu/kalibrate-hackrf.git
cd kalibrate-hackrf
./bootstrap && ./configure
make && sudo make install

6. 安装Wireshark数据包分析器

1
2
sudo apt-get update
sudo apt install wireshark-qt

实战操作

扫描基站频率

执行命令扫描PCS频段(1900MHz):

1
kal -s PCS

选择检测到的频率(如1930.2MHz),通过Gqrx SDR调整至实际中心频率1930.535MHz。

使用GNU Radio Companion捕获流量

运行grgsm_livemon.grc模块(替代旧版airprobe_rtlsdr.grc),启动后调至1930.535MHz。控制台出现高速数据流(含大量“2b”填充字节)表明成功捕获蜂窝流量。

Wireshark数据包分析

以root权限启动Wireshark并应用gsmtap过滤器:

1
sudo wireshark

在回环模式下分析本地流量,可识别系统信息类型4(载波信标)等数据包结构。

总结

本项目深入实践了SDR在GSM/LTE领域的应用,包括硬件配置、信号捕获与解码。后续计划进一步解析数据包含义,并通过合法测试呼叫(如捕获个人SMS报文)深化对移动网络运作机制的理解。

提示:想深入学习?可参加Antisyphon的付费课程(支持按能力付费模式),提供实时/虚拟及点播培训。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计