Series: Lora

Lora初步研究


Lora安全研究

目前手上的设备:

1、Hackrf one

2、两块沃进的开发板

VGKitBoard系列无线模块评估测试套件用户手册V1.3.pdf

3、一个2.4G的lora模块

模块手册:

VG2392S240N0M1_硬件规格书_V1.2.pdf

两个开发板在插上这个lora模块后屏幕有不同的反应:

第一个:

image.png

第二个:

0d33f21e6fe476a5d9e9e5af73269d08.jpg

经过源码(myRadio.h)核对:

mod2代表的是GFSK模式

642e45a2ffad0ab49ce008f84f8f4cfb.png

抓了一小时频谱图看不到lora数据还以为是设备出问题了,后面才发现是在另一种调制方式。

4、BetaFPV手柄+无人机

应该是使用elrs+lora的方案,elrs估计在用fhss跳频,80Mhz的带宽,hackrf的20Mhz带宽和采样率比较难覆盖到,目前还没从瀑布图中看到lora的斜线。

网上找的lora频谱图:

C034AA-M05-S02-cours_FR

基于沃进开发板的说明文档,当前开发除了reset键之外都没办法用,故无法调整模式、power、扩频因子等参数。并且设置中也调不了模式。

image.png

问了同事,之前被捣鼓过,我应该要重新刷一下系统了。

需要买一个 ST-Link V2 擦掉Flash。


到手后按接线:

板子 P5接 ST-Link V2(外壳上印的名)
3V33.3V(或写 3V3 / VCC)
DIOSWDIO
CLKSWCLK
GNDGND
RSTRST(可接可不接,接上更稳)

连接:

image.png

擦掉配置

image.png

没擦,看了一眼,已经都是FFFF了,说明当前板子刷的源码不是github上的那一套

dump下固件:

image.png

准备重新刷

重新编译

image.png

准备刷写

image.png

stm32和openocd都无法去除写保护

使用裸寄存器操作去除写保护

image.png

重新开机后,应该是已经调成了lora模式

a366fa558e44a859f65f4fdbbfc81e0d.jpg

通过按钮也可以配置设置了

Br. 127.000kb 就是源码里的 RF_BAUDRATE_LR_127K(LoRa 专用档 = SF5 / BW1.6MHz / CR4-8)

c900e544d75588169b4a703c681fbe14.jpg

使用hackrf抓包,中间的应该是lora包

image.png

在设置中调大pklen后,瀑布图中的包更密集。

image.png

rfBR(波特率)和SF、BW、CR的对应。

image.png

调整到1000的rfbr档位,hackrf解包,使用gr-lora-sdr解包

image.png

抓12秒包,画成频谱图,隐约可见斜线

image.png

抓一小段包放大后可以看到清楚的斜线

image.png

一个完整的lora包

lora_packet.png


GUNradio流图,可以解析2.4G SF10 203Khz BW的lora数据

image.png

解码空口lora数据,数据量大容易误码,下图是255bytes

image.png

改为25bytes:

image.png


理解lora的调制解调


解调的原理:https://chatgpt.com/s/t_6a54af4c853081918197222fe0250a4d


复数


前导码注入


原理:使大量的前导码淹没接收端,让接收端误以为要有新数据进来,卡在前导部分。

一发一收:

image.png


从海量信号中筛选出前导码重放


使用hackrf在2400Mhz抓2s的包

从中筛选出前导码,然后重放。

干扰效果取决于接收方收到的信号强度,若接收方离发送方很远,近点干扰很低的功率就有效。

命令行(在有 radioconda 的环境;preamble_jam.bat 已自动配好 PATH,直接双击也行,双击=用默认参数): preamble_jam.bat 直接跑默认:抓@2400 → 注入15秒 → 满功率 preamble_jam.bat —seconds 20 注入20秒 preamble_jam.bat —tx-gain 35 降功率 preamble_jam.bat —no-tx 只抓+切,不发射(安全自测

image.png

preamble_jam.bat

preamble_jam.py

抓包后获得参数,合成前导码