采用USRP SDR和URH进行无线开关发射的信号解调和协议数据包解密
本帖最后由 gmg2719 于 2023-5-19 18:52 编辑我们今天的研究目标是一个INSMA 433Mhz 无线射频开关。通过特定的工具研究其通讯协议,给出采用URH工具研究和SDR进行无线信号破解的手段。产品在网站宣传的图如下:
采用USRP B210和URH工具进行采样。如下图所示,运行URH , 选择Record Signal 菜单, 设置采用的中心频率和subdev参数等,运行后保存4份采样数据。
采用 open 菜单,全选4份采样文件,打开文件。如下图所示, 设置调制方式为ASK.
对于遥控器发射的信号,进行一个简单的科普说明。对于ASK调制方式,bit 1代表了开,bit 0 代表了关。 从发射器的角度,关的状态其实就是功率电平的低状态。为了对于这个无线模式进行探索,我们需要知道如下的几个参数:1、 对于遥控器的每个按钮,是整个数据包的那些bit来标识的?2、 每个Bit的宽度是多少(与之相对应的概念就是符号率)3、 无线传输的中心频率是多少?对于第3个问题,产品说明书已经告知。 对于第2个问题, URH工具可以提供细节如下图所示:以第一个采用文件为例,按住CTRL键+鼠标滚轮,放大波形,直至看到正弦波的样子。 然后选中下面对应的一个bit 1. 对应的波形也会被蓝色底色标记。这个蓝色底色的宽度就是对应的Bit宽度。
为了更清晰的展示, 可以采用URH的 Demodulate 视图, 这个视图给出了类似数字电平的矩形图来表示bit位。如下图所示.
我们选择一个相对较窄的矩形波,拖动蓝色矩形的宽度,使得其正好覆盖整个矩形。如下图所示,可以看出来此时他的宽度是481.0us。我们可以认为是电平bit1的宽度大概至少要达到481us。为了更清晰的展示出协议数据包的情况,二进制显然是不太合适的,如下图所示选择Hex 十六进制格式:
把四组数据都转换为Hex view,虽然可读性有些强,但是数据还是比较乱的。这是因为urh对于解调参数的预估可能受到了一些因素的影响,我们可以先尝试点击Auto DetectParameters按钮,经过点击之后,我们分别浏览4组数据如下:
我们可以看到最后一组的数据一致性最好,也就是按下按钮D时的那组数据, 我们可以几乎肯定的是按下按钮D时的协议数据包为ee8e8e8e8e8e8e8eee8888888可以看到这个协议数据包数字只有两个8和e. 那么对应到解调波形上是怎样的呢。我们可以看到e代表了一个宽脉冲,8代表了一个短脉冲。
这个遥控器通过这种脉冲图样的调制信息来进行发射信息。那么A,B,C按钮我们可以先假设也都是这样的一个图样。那么为什么URH解调出来的信息会有些问题呢。我个人感觉还是因为干扰或者相应的参数不合适导致的,URH自动评估出的参数是存在一些问题的。 那么我们微调一下左边的参数,进行手动微调。把Noise统一调节为0.0014, samples/symbol 为 500. Errortolerance为6. 并且把图形进行适当的缩小。如下图所示。
此时我们把button A对应数据拷贝出来:1d1d1d1d222223ba [Pause: 14476samples]
ee8e8e8e8e8e9d1d222223ba [Pause: 14725 samples]
ee8e9d1d3a3a3a3a222223ba [Pause: 14490 samples]
ee8e8e8e8e8e9d3a222223ba [Pause: 14745 samples]
ee8e8e8e8e8e8e9d111111dd [Pause: 14751 samples]
ee8e8e8e8e8e8e8e888893ba [Pause: 14754 samples]
ee8e8e8e8e8e8e8e888888ee8 [Pause: 14753samples]
ee8e8e8e8e8e8e8e889111dd [Pause: 14702 samples]
ee8e8e8e8e8e8e8e888888ee8 [Pause: 14704samples]
ee8e8e8e8e8e8e8e888888ee8 [Pause: 14756samples]
ee8e8e8e8e8e8e8e888888ee8 [Pause: 14772samples]
ee8e8e8e8e8e8e8e888913ba [Pause: 14769 samples]
ee8e8e8e8e8e8e8e888888ee8 [Pause: 14777samples]
ee8e8e8e8e8e8e8e888888ee8 [Pause: 14775samples]
ee8e8e8e8e8e8e8e911113ba [Pause: 14781 samples]
ee8e8e8e8e8e8e8e888891dd [Pause: 14586 samples]
ee8e8e8e8e8e8e8e888888ee8 [Pause: 21009samples]
000 [Pause: 1380822 samples]
可见ee8e8e8e8e8e8e8e888888ee8 出现的频度最高,而且也满足了都是e或者8的要求。可以基本肯定这是A按钮的协议数据包。 同理,把B和C的按钮数据也经过类似处理。可以得到B按钮的数据包是 ee8e8e8e8e8e8e8e8888ee888, C按钮是 ee8e8e8e8e8e8e8e88ee88888。 至此,A,B,C,D按钮的数据包就解析完成了。这为后续构造攻击用的数据包来伪造遥控器指令奠定了基础。通过构造相应的数据包对应的ASK调制后的波形,经过一个反向过程之后通过SDR的TX发射出去,就可以产生对应的无线攻击。本帖就先到这里。采用URH进行无线攻击的研究将在后续有时间的时候再阐述。
这文章太牛逼了吧 相当厉害的文章 这是给通信的人,才能看懂吧
我就想问,学会了这篇文章能破解YD电动车限速吗?如果不能我就不学了
看不懂,不明觉厉 不明觉厉,相关专业的人估计看着是宝藏,我看着光觉得高大上 很详细 ,自己用话足够了 厉害,URH没用过