HackRF实现无线门铃信号分析重放

文章特点:数据解码方面实在是没什么信心,存在分析错乱的可能性,所幸发出来共同探讨,恳请鞭策。

0x01 概述

这是一款工作在315Mhz频段的无线遥控门铃,根据查阅官方手册以及芯片信息,确定其采用了eV1527 百万组编码芯片。这是一款无线发码专用集成电路,采用 CMOS 工艺制造,拥有 20 位内码,可预烧 100 万组内码组合,发射频率支持315Mhz与433Mhz。本文仅对基于录制的信号波形图进行简单分析,详细发码结构可参考相关文档。

EV1527芯片说明:http://www.sc-tech.cn/ev1527.pdf
EV1527码位波形图:http://wenku.baidu.com/view/1b54c361ddccda38376baf7c.html

 

编码模块特写:

 

0x02 信号分析

首先通过gqrx或SDR#对无线门铃的工作频率进行精确定位,我自己这款检测到的频率值为315.1Mhz,而公司的门铃则与说明书标称的一样为315Mhz ;

出现不同是因为EV1527芯片可根据电压和振荡电阻的匹配情况来确定其振荡频率,电压越高,频率越大,电阻越大,频率越小,从组合来看可以构成无数种振荡频率,大大降低了重复几率。

接下来对工作频段数据进行捕获录制,执行以下命令:

hackrf_transfer -r hell.iq -f 315100000 -s 8000000 -n 40000000

解释:记录数据到文件hell.iq、指定工作频率为315.1Mhz,指定采样率8Msps/s,指定采样样本数为40M,采样时间也就是5秒

并在5秒内按下遥控器按钮,此时铃声响起,数据也被记录下来了

重放信号以测试样本可靠性:

hackrf_transfer -t hell.iq -f 315100000 -s 8000000 -a 1 -l 40 -x 47

解释:指定发射信号源文件,指定工作频率315.1Mhz,指定采样率8Msps,开启天线增益控制,指定RX LNA(IF)增益为40,指定TX VGA(IF)增益为47

如果听见铃声响起,那说明这段信号是有效的,如果没有响起,可能是录制指定的频率不对或采样到的信号样本不完整,可多次尝试录制,如果是车钥匙等其他设备,其信号只有一次或几次有效性,俗称滚动码,这点请注意。

如果从单纯分析信号的角度考量,现阶段不一定需要重放信号;

现在我们使用音频处理软件 Audacity 对hell.iq文件进行信号分析,我们可以通过其展现信号波形图来判断信号的调制方式并加以分析

打开程序后点选“文件”—“导入”—“原始数据”— 配置如下

导入成功后显示如下图:

 

上面有14段完整的信号采样,我们选择一段信号后点击放大镜来进一步观察信号特征

上面是两段相同的脉冲信号,由1和0组成 ,因为我们已经预先知晓了该无线模块的调制模式为ASK/OOK 所以接下来的分析比较简单,这里面的OOK是ASK的一种特殊调制模式,叫做(On-Off-Keying),简单说它就是摩尔斯电码的工作方式。由于OOK的抗噪声性能不如其他调制方式,所以该调制方式在目前的卫星通信、数字微波通信中没有被采用,但是由于该调制方式的实现简单,在遥控、RFID等领域中仍然有着广泛应用。

我们将第一个最窄宽度的蓝色条状物当作标准宽度 1,空白区域当作0,空白区域的宽度能容纳几个标准宽度蓝条,就代表有几个0,以此类推,较宽的蓝色条状物能容纳几个标准宽度蓝条就代表有几个1。

经过计算和统计后,我们得出如下数据:

1000100011101000111011101000100011101110100011101110100011101000111010001110100010001000100011101

在我们按住遥控按钮的过程中,信号实际上是在持续不断的重复发射的,后面距离第二段脉冲信号经过计算大约有30个0,所以整段数据为

1000100011101000111011101000100011101110100011101110100011101000111010001110100010001000100011101000000000000000000000000000000

根据EV1527芯片说明,当工作电压在12V、振荡阻值80K情况下,其脉冲周期 T≈400μs,即0.4毫秒,脉冲周期是指前后相邻脉冲的间隔时间,这一参数将在后面模拟仿真时使用到。

由上面两组相同的信号样本结合芯片说明可知这是两组相同的帧码,每一帧码有25位,由同步码、内码、数据码组成,一帧码发完马上发下一帧码。

时序图:

数据解码:

接下来对上面捕获的数据进行解码,其他位我们可以这样理解,第一位SYN也就是1000,这段我们不予分析(实在不会,这是一段高低电平比t:31t的脉冲信号 ),后面的部分可以分为“百万组内码”和“数据码”,数据码我们已知是后四组,也就是1000100011101000,根据上诉分析可解出4个数字代表一位,每个数字脉冲周期是4t,这里的1代表高电平,0代表低电平,则1000可解为0,因为4t+12t先高后低表示0码,而1110可解为12t+4t先高后低,代表1码,最后整段解码得出0010这个发码组合,参考芯片说明一共有15种按键组合,当门铃被按下后则发出对应的发码组合给接收器中的EV1527芯片,接收器收到后就会处理响应,播放铃音了。

内码部分按照上述原理解码后得出:01011001101101010100,将二进制转换后得出 十进制:367444 十六进制:0x59B54 也就是这款芯片的百万组编码号了。

公司门铃内码解码后得出:1101001101101100101 十进制:432997 十六进制:0x69B65

0x03 数据汇总

#自己的门铃
产品型号:朗瑞特 LR-1688 直流款
发射模块:eV1527 百万组编码芯片
调制模式:ASK/OOK
工作频率:315.1Mhz
Vector:(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
#公司门铃
产品型号:朗瑞特 LR-1688 交流款
发射模块:eV1527 百万组编码芯片
调制模式:ASK/OOK
工作频率:315Mhz
Vector:(1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

0x04 模拟信号源发射

Repate模块用于设置脉冲周期;

由于我们的框图中使用采样率为1MHz,那么想让每个数字所占用的时间t=0.4ms的话,则需要使Vector Source里的每个数字重复 1e6*0.5*10^(-3)=400 次。于是将Repeat模块的Interpolation设置为400即可。

Gnuradio框图:

 

时间: 2024-09-20 11:41:47

HackRF实现无线门铃信号分析重放的相关文章

永不消逝的电波(二)HackRF入门:家用无线门铃信号重放

0×00 前言 在第一篇文章:永不消逝的电波(一):无线电入门篇 我们了解了一下无线电的发展史以及无线电的一些物理知识,在第二篇里我们将用HackRF录制家用门铃的无线信号,然后重放门铃信号. 门铃从某宝买的,如图: 0×01 环境搭建: MAC下可以用gqrx和hackrf (需要有Xcode.Mac Port的支持) sudo port install gnuradio sudo port install hackrf sudo port install rtl-sdr sudo port

RTL-SDR + GnuRadio+RFcat 分析、重放无线遥控信号

0×00 前言 前段时间在<永不消逝的电波(二)HackRF入门:家用无线门铃信号重放> 一文中通过HackRF录制.重放了无线遥控信号,不过一直没来得及对信号进行分析,刚好在国外网站看到有大牛对遥控信号进行了分析(详见refer部分).在这里便按照国外大牛分析无线遥控信号的方法来依葫芦画瓢. *本文仅分享信号分析方式,因信号调制编码方式有所不同,如数据分析有出错,希望大家不要打我= ̄ω ̄=  0×01 环境搭建 Mac可使用port(www.macports.org) 或者brew(brew

如何利用HackRF分析无线电信号,解读无线语言

本文讲的是如何利用HackRF分析无线电信号,解读无线语言, HackRF是一款价值300美元的SDR的USB外部供电设备,除了基本的供电功能外,还具有1MHz至6Ghz的信号频率,TX/RX以及每秒2000万个采样的8位正交样本.支持的操作范围涵盖了研究人员可能感兴趣的大量RF频谱, 1MHz至6 GHz频段包括了AM无线电,航空无线电,导航,短波广播,电视,FM收音机,蓝牙,手机网络, GPS,Wi-Fi(2.4Ghz和5Ghz)以及各种卫星通信.此外,HackRF提供了传输该频段内的任何信

《MATLAB信号处理超级学习手册》——2.2 信号的产生

2.2 信号的产生 MATLAB信号处理超级学习手册 本节将使用MATLAB产生基本信号.绘制信号波形.实现信号的基本运算,为信号分析和系统设计奠定基础. MATLAB提供了许多函数用于产生常用的基本信号,如阶跃信号.脉冲信号.指数信号.正弦信号和周期矩形波信号等,这些基本信号是信号处理的基础. 2.2.1 方波函数 square的调用函数如下所示. x=square(t):类似于sin(t),产生周期为2*pi,幅值为1的方波. x=square(t,duty):产生制定周期的矩形波,其中du

GnuRadio Hacking①:使用GnuRadio+SDR破解固定码无线遥控

0×01 信号捕获 在这篇文章中,我们将使用GnuRadio+SDR硬件对某品牌型号的无线跳蛋进行无线重放攻击的演示. 市面上常见的无线遥控工作的频段,通常工作在315Mhz.433Mhz,也有少数的会采用868Mhz.915Mhz这几个频点. 我们可以用电视棒.HackRF.BladeRF等SDR硬件来确定遥控的工作频率: 打开软件按下遥控器后,能在瀑布图上看到明显的反应: osmocom_fft -F -f 433e6 -s 4e6   gqrx 无线遥控中心频率:433870000 0×0

永不消逝的电波(一):无线电入门篇

0×00 无线电发展简史 · 1837年,摩斯发明了电报,创造了摩斯密码(Morse code),开始了通信的新纪元. · 1865年,英国的麦克斯韦总结了前人的科学成果,提出电磁波学说. · 1876年,贝尔发明了电话,能够直接将语言信号变为电能沿导线传送. · 1887年,德国科学家赫兹(Hertz)用一个振荡偶子产生了电磁波,在历史上第一次直接验证了电磁波的存在. · 1897年,意大利科学家马可尼(Marconi)在赫兹实验的基础上,实现了远距离无线电信号的传送,这个距离在当时不过一百码

使用Arduino模块实施无线信号的重放攻击

无线电已经存在使用了很长一段时间,在这很长的一段时间里诞生了一个名叫火腿族的集体(小编:嗯 对 就是整天吃火腿的那些人^_^  CQ CQ ).无线电和互联网一样:同样存在一些安全隐患,比如:在无线信号的传输中并没有考虑到CRC校验.加密等安全问题. 小情景:如果你在某一天使用无线钥匙卡解锁汽车时候按第二次才成功解锁,那么你的汽车已经被黑客盯上了! 一种名为"车钥信号重放攻击"的新型攻击方式已经被国内外的一些黑客普遍使用:他们利用无线电技术来截获你的钥匙卡指令,然后对汽车电子钥匙的信号

MATLAB与VC++混合编程实现一维小波多尺度分解.

引言 小波分析世纪80年代开始发展成熟起来的一个数学分支,其应用领域十分广泛,并逐步成为信号分析的又一有力工具.MATLAB的小波工具箱为我们提供了小波多尺度分解函数,方便了我们对小波的使用.但是用它所编写的软件不能脱离MATLAB编程环境在Windows平台下直接运行,代码执行效率低下,运行时占较多的系统资源,不能达到某些用户的需求. VC++是由美国Microsoft 公司开发的可视化C/C++集成编程环境,是目前功能最强大的软件开发工具之一.被广泛应用于Win32平台的基础应用程序的开发.

浅析VC与MATLAB联合编程(四)

在浅析VC与MATLAB联合编程<一>.浅析VC与MATLAB联合编程<二>和浅析VC与MATLAB联合编程<三>中简单介绍了VC和MATLAB接口的两种方法,初学者可能会问为什么要用VC和MATLAB接口,接口的实质又是什么,本文就通过一个例子来回答这两个问题. 首先来介绍一下MATLAB.MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成.那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于