使用HackRF+GNU Radio 破解吉普车钥匙信号

引文
我最近对软件定义的无线电技术(SDR)产生了浓厚的兴趣,而我对其中一款流行的SDR平台(HackRF)也产生了兴趣,而其频率接收的范围也在1MHz ~6GHz之间(范围较广)。而这里也需要提及一个有趣而实用的攻击方法即重送攻击,当然可以理解为记录一个简单的信号,然后再播出它。我将利用我的电脑攻击并解锁Jeep Patriot (2006)汽车。Patriot是Jeep品牌旗下一款偏重公路性能的城市型SUV,同时也兼具Jeep品牌一贯的越野本性,在克莱斯勒展台上准备参展的Patriot车尾铭牌上的中文名称为“自由客”。
首先我需要录下汽车“锁/解锁”信号,当然这里需要用到车钥匙。详细信息可以参考流程图(gnuradio-companion)

接触流程图之后需要注意的事情
1.频率315 MHz(无线钥匙接入的频率)
2.它可以记录2百万份样本/每秒(在导入Audacity软件之后)
3.保存的文件形式-radio_signal.dat
4.以“瀑布图”形式显示出来
5.下面就是那个瀑布图,这是第一个“解锁”信号,后面都是相反的信号

现在我可以简单的回放这些信号了,为了更详细的分析这些信号,我曾尝试利用 Audacity剪辑这些信号,audacity是一款免费的音频处理软件,同时它可以编辑无线信号,但作者称在这里不会透漏太多,但可以参考这个:点击我
这就是在Audacity软件中看到的锁/解锁信号

所以在这里,你可以清楚地看到2个不同的信号:第一次解锁,然后锁定。而在在这里我也可以通过不同的文件来选择输入/输出的信号

于是我得到了两个原始信号数据的文件

需要注意的是,及时这个时候剪辑下来这个信号并保存成文件,大小也是10Mb。最后做成一个流程图,可以参考下面

为了更好地执行脚本程序,我仅仅修改了 gnuradio-companion 输出的一个脚本程序(top_block.py),并将其修改的脚本程序(jeep_unlock.py)放入进一个文件( jeep_unlock.raw)中,以及其它的(lock_jeep.py) 脚本程序也都放入其文件中。
演示视频
*参考来源:calebmadrigal
使用HackRF+GNU Radio 破解吉普车钥匙信号的更多相关文章
- [SDR] GNU Radio 系列教程(一) —— 什么是 GNU Radio
目录 1.GNU Radio 是什么 2.我为什么要用 GNU Radio 3.数字信号处理 3.1 一点信号理论 3.2 将数字信号处理应用于无线电传输 4.基于流程图的模块化数字信号处理方法 本文 ...
- [SDR] GNU Radio 系列教程(二) —— 绘制第一个信号分析流程图
目录 1.前言 2.启动 GNU Radio 3.新增块 4.运行 本文视频 参考链接 1.前言 本文将介绍如何在 GNU Radio 中创建和运行第一个流程图. 2.启动 GNU Radio GNU ...
- GNU Radio的hello world(转)
运行GNU Radio 需要注意的是,如果您的项目不需要用到硬件源和硬件池的话,直接使用Shell运行GRC是没有问题的.但是需要用到硬件源和硬件池的话,请记得使用管理员权限运行GRC,否则项目在执行 ...
- GNU Radio: Synchronization and MIMO Capability with USRP Devices
Application Note Synchronization and MIMO Capability with USRP Devices Ettus Research Introduction S ...
- GNU Radio: Multiple USRP configurations 配置多个USRP设备
Introduction 引言 Some USRP devices are capable of being grouped to form a single, virtual device. A s ...
- GNU Radio在SDR领域的应用
1 Software Defined Radio 软件无线电(Software Defined Radio,SDR)是一种实现无线通信的新概念和体制.其中以往只能在硬件中实现的组件(例如混频器,滤波器 ...
- GNU Radio: 自定义 block 实例
综述 本文通过在GNU Radio 中编写一个block的例子,系统介绍创建一个block的过程.该 block 的功能是可以在GRC中通过滑块(WX GUI Slider)来实时改变信号源(Sign ...
- GNU Radio 入门培训
1. GNU Radio介绍 1.1 什么是GNU Radio GNU Radio是一个完全开源的软件无线电结构平台,它可以用来设计和仿真,也可以用来连接真实的无线电系统.GNU Radio是一个高度 ...
- 【译】GNU Radio How to write a block 【如何开发用户模块及编写功能块】
本文讲解如何在GNU Radio中添加用户开发的信号处理模块,译文如有不当之处可参考原文地址:http://gnuradio.microembedded.com/outoftreemodules Ou ...
随机推荐
- 33-Url辅助方法
Url辅助方法与HTML辅助方法很类似,HTML辅助方法用来产生HTML标签,而Url辅助方法则负责用来产生Url网址. @Url.Action("About") 最后的输出网址如 ...
- 使用AndroidStudio编译NDK的方法及错误解决方案
参考资料: [android ndk]macos环境下Android Studio中利用gradle编译jni模块及配置:http://demo.netfoucs.com/ashqal/article ...
- 为设计师准备的 20 个新的免费 PSD 模板
设计师们每天的工作经常要用到各种模板,本文推荐 20 个新的免费 PSD 模板,可节省设计时间. Blueprint Notice PSD Wooden Drawer Icon Minimal Clo ...
- (32)odoo中的编码问题
对于全部是英文就不存在问题,但我们常用中文,这样会导致一个棘手的问题 约定: 系统Ubuntu trusty14.04 自带python2.7.6 python2.7.9 自己升级了 升级方法: -- ...
- Thread类的使用
在前面2篇文章分别讲到了线程和进程的由来.以及如何在Java中怎么创建线程和进程.今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态.上下文切换,然后接着 ...
- oracle知识点
创建序列 create sequence a_seq --创建序列名字为 a_seqminvalue 1 -- 最小值为 1maxvalue 99999 --- 最大值为 99999 start wi ...
- String.equals()方法的实现代码,
通常对String的比较有两种情况,一个是使用==,另一个是使用equals()方法,注意==是对对象的地址进行比较的,而String中的equals()方法是覆盖了Object类的方法,并且实现为对 ...
- JDE客户端get时报错“ERROR:fetch from table F0101 failed”
客户端开发时发现总报错误“ERROR:fetch from table F0101 failed” 原因是用户ID在地址名册中找不到地址号.修改用户地址号即可.如下图所示
- 开源项目导入eclipse的一般步骤[转]
下载到开源项目后,我们还是希望导入到eclipse中还看,这样要方便点,一般的步骤是这样的 打开源代码目录, 如果看到里面有.calsspath .project文件,那么说明这个项目本来就是ec ...
- Window["aaa"]这个在JS里是什么意思?
答案:定义一个全局的变量 aaa,这个的方式是数组,实际上是等于 window.aaa
