吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4363|回复: 30
上一主题 下一主题
收起左侧

[原创] 原创--某款温湿度传感器的无线信号解密和伪造方法

  [复制链接]
跳转到指定楼层
楼主
gmg2719 发表于 2025-1-26 20:30 回帖奖励
本帖最后由 gmg2719 于 2025-1-27 11:33 编辑

由于帖子的图有些不清楚,在这里贴上我写的帖子的pdf原文
传感器.zip (1.23 MB, 下载次数: 54)

根据经验,很大一部分传感器采用
433MHz左右频率,采用URH找到433.92MHz收到信号,采用软件无线电USRP B210记录此信号。采用urh加载此信号,可以发现每隔一段时间会有一定的波形传输。打开此信号,可以看到,每隔大概56.96s左右,传感器会发送一组信号。
而且是周期性的信号,故而可以选择其中一组信号,进行仔细分析。 选择Create signal from selection




选择有信号的部分,进行放大 zoom selection


采用鼠标滚轮进行进一步放到到如下,可以看到大概有离散的波形大概是500us的时间范围, 而且如下图可以看到两个相邻的正弦波形的相位和频率是一样的。 可以大概猜一下,如果500us有正弦波,则翻译为bit 1, 如果接下来500us是没有正弦波则翻译为bit 0. 也就是说1symbol500个采样点。 所以下面的一段信号就可以翻译为100




所以可以大概猜测一下,肯定不是FSK,也不是PSK,因为这两种都是会改变频率或者相位的,故而选择ASK, 然后点击Autodect parameters按钮. 我们可以看到urh采用ASK的解码之后,我们选择了下图所示的信号,可以看到URH也把100给高亮显示了,所以我们前面的猜测是符合理论。



可以看到如下的码流的十六进制表示方式:


码流如下:92484924921212121210842424921080424849242492490909090908421212490840212424921249248484848484210909248420109212490924924242424242108484924210084909248492492121212121084242492108042484924249249090909090842121249084021242492124924848484848421090924842010921249092492424242424210848492421008490924849249212121212108424249210804248492424924909090909084212124908  那是不是这就是数据帧的最小单位呢? 我们再把信号进行适当的缩放,可以得到如下类似的概览图,我们发现每组相对密集的信号中间,貌似有一个相对比较宽的无信号的间隙。 这个间隙意味着有较多的0. 我们大概区分了一下,有10组这样的信号。




可见常规的zero部分占用了2ms,约为4symbol.  而较长的zero部分占用了4ms, 为8symbol.

根据Pulse Modulation的规律,我们可以假设8symbol的这个zero部分为Pause信号。 那么我们需要在urh的设置中设置,让urh认为8symbolzero,就是pause,不能作为正常是数据传输。所以下面需要设置7, 这是因为urh是取大于这个阈值的值作为pause分割的。

我们可以看到最新解码出的数据帧,更有规律了。



可以看到除了第一帧和最后一帧的数据长度相同, 2到第8帧的数据长度是一样的。9248492492121212121084242492108 [Pause: 3993 samples]
84909248492492121212121084242492108 [Pause: 3993 samples]
84909248492492121212121084242492108 [Pause: 3993 samples]
84909248492492121212121084242492108 [Pause: 3993 samples]
84909248492492121212121084242492108 [Pause: 3993 samples]
84909248492492121212121084242492108 [Pause: 3993 samples]
84909248492492121212121084242492108 [Pause: 3993 samples]
84909248492492121212121084242492108 [Pause: 3992 samples]
84909248492492121212121084242492108 [Pause: 3995 samples]
849092484924921212121210842424921 [Pause: 5105644 samples]


但是这些数据是否是已经是最原始的数据呢?根据相关资料,查询得到这个传感器的数据格式大概是这样的:一共采用了9个半字节(4bit),构成:
[id0-4bit] [id1-4bit] [flags 4bit] [温度0] [温度1] [温度2] [保留字段] [湿度0] [湿度1
id字段: 传感器标识信息. 具体详细定义未知.
flags: 4bit,标识电量或者其他工作状态信息,具体详细定义未知。
温度: 占用12, 12位有符号数除以10是实际温度
保留字段: 永远为 1111 (0x0F)
湿度字段: 8 无符号数. 代表相对湿度百分比。
从这个定义来看,我们得到的信息还是太长了,说明这个bit信息是经过了信道编码的,也就是原始的bit流,为了抗干扰和信息传递可靠性的考虑,进行了信源编码。 经过相关的研究,此bit流采用了反向的摩尔斯编码手段。 所以我们应该先将bit进行Inverse, 再采用Morse code 进行decode.具体操作如下:  选择edit --decoding


分别拖动invertMorse codeYour decoding页面.

设置摩尔斯编码的配置如下,进行取反之后的信号, 其中代表以10开头紧跟最多21代表逻辑0,以0开头紧跟至少41代表逻辑1

将此自定义的解码器另存一个名字,以备后面使用。




然后选择我们的信号源为 new-signal.

可以看到原始的输入bit和解码后的Bit 信息如下:






关闭decoding窗口,点击Analysis页面, 选择我们刚才自己设计的decoder.



我们可以看到经过解码之后的10个帧的数据,其中第一帧解码出了32bit8个半字节,第二到第9帧解码了36bit9个半字节(符合我们前面的数据结构定义), 10帧只有35bit,应该是部分数据丢失导致的。 其中第一帧也缺了4bit,也不知道具体是什么原因,可能是采集时丢失了。 所以我们暂且认为所有数据帧都是36bit, 之前缺失的部分是采集错误导致。




为了方便分析,我们采用如下菜单功能把原有的第1行和最后一行不完整的信息给隐藏。


然后进行信息字段定义:
[id0-4bit] [id1-4bit] [flags 4bit] [温度0] [温度1] [温度2] [保留字段] [湿度0] [湿度1
id字段: 传感器标识信息. 具体详细定义未知.
flags: 4bit,标识电量或者其他工作状态信息,具体详细定义未知。
温度: 占用12, 12位有符号数除以10是实际温度
保留字段: 永远为 1111 (0x0F)
湿度字段: 8 无符号数. 代表相对湿度百分比。  
选中对应的bit,右键createLabel来定义字段。

从如下定义可以看出,此时传感器给出了温度为17.0度,湿度为67%

既然我们现在完全解密了这款传感器的数据帧,那么下面就采用urh的信号发生功能来尝试伪造信号了, 选择Generator页面,拖动new-signal到右面的空白处,工具就会调出之前我们的分析结果。

根据前面的分析,我们认为第1和第10帧的数据有未知的丢失的,那么我们人为的给他补全一下,并且将温度和湿度都篡改一下,改为其他值如下是修改后的数据, 温度值和湿度值都做了手脚。


确保enforce encoding 采用的是我们之前的解码器,在进行encoding的时候,工具会自动进行反向编码。




可以点击如下按钮,工具就生成了可以供软件无线电硬件发送的信号文件了。




或者直接点击send data按钮,直接用USRP B210发射篡改后的信号,就可以成功干扰到传感器的数据了。 如下图所示,USRP 硬件正在周期性发送右图所示的篡改后的信号。


大功告成!

免费评分

参与人数 14威望 +2 吾爱币 +112 热心值 +12 收起 理由
Hmily + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
junjia215 + 1 + 1 谢谢@Thanks!
ogli324 + 1 + 1 谢谢@Thanks!
xhp1976 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jaffa + 1 谢谢@Thanks!
吾恋兮不知 + 1 热心回复!
xiaohui311 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lzws03 + 1 我很赞同!
bobowi + 1 + 1 用心讨论,共获提升!
那些年打的飞机 + 1 + 1 谢谢@Thanks!
bcmgzht + 1 + 1 强啊,无奈我英语太差学不来,只能给大佬点点赞了
NeutrinoZ + 1 + 1 我很赞同!
luo3883 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
xss517 发表于 2025-1-26 20:54
软硬结合hack  比较酷
3#
zx360717966 发表于 2025-1-26 21:06
4#
mavericklaw 发表于 2025-1-26 21:15
5#
wow999 发表于 2025-1-26 21:39
超级牛掰!!没有一定知识,还真看不懂这篇文章
6#
txj66 发表于 2025-1-26 22:14
自己试试,看看效果如何
7#
aib0 发表于 2025-1-26 22:17
伪造这个有啥意义呢?
8#
xixicoco 发表于 2025-1-26 22:45
文章不错,就是图有点小
9#
gegegefei 发表于 2025-1-27 05:37
感谢楼主分享,看到这个解密,我就想学习一下。
10#
zzt5211314 发表于 2025-1-27 08:06
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-4-15 00:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表