0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享一种使用RTH示波器探测并解码HDMI的方法

罗德与施瓦茨中国 来源:罗德与施瓦茨中国 2024-03-14 13:47 次阅读

引言

现代社会中,人们的日常工作和生活愈发依赖于计算机。在处理一些机密事务时,信息安全不可谓不重要。在一些单位会采取断网或禁止插入U盘的方式来防止泄密。然而,计算机的EMI问题还可能导致信息从其它途径泄露。本文介绍了一种使用RTH示波器探测并解码HDMI的方法,并解释了其实现原理。

RTH示波器相比市面上常见的软件无线电接收机采样率高了很多倍,因此解析出的画面会更清晰,有利于看清小字体。另外,RTH示波器是手持仪表,携带非常方便,还能通过WiFi方式实现信号回传,简化了示波器与上位机之间的连接,降低了整套探测系统的复杂度。

e39ca526-e1be-11ee-a297-92fbcf53809c.png

既然是EMI问题导致的信息泄露,我们可以先尝试用示波器的近场探头配合示波器FFT功能在被攻击电脑附近进行探测。当我们移动近场探头到达被攻击电脑的HDMI接口附近,示波器频谱上会出现好多信号。

e3abd29e-e1be-11ee-a297-92fbcf53809c.pnge3cee32e-e1be-11ee-a297-92fbcf53809c.png                                                    

▲从上图可知,HDMI显示信号已经泄露到了空气中,如果我们能够找出信号规律,即可逆向得到原始画面内容。

e3e4c9c8-e1be-11ee-a297-92fbcf53809c.png

我们可以先在被攻击电脑上使用比较简单的图形,并观察示波器的时域波形,来尝试找出电脑画面与泄露信号之间的规律。

e3f0a8ba-e1be-11ee-a297-92fbcf53809c.png

比如我们可以在被攻击电脑上开启画图程序,并填充黑色背景。然后中间开启一个白色长条形的记事本窗口,并尝试更改这个窗口的宽度,或左右拖动这个窗口。

e4059716-e1be-11ee-a297-92fbcf53809c.png

调整示波器的水平/垂直刻度和触发方式,你会得到这样有规律的时域波形。并且你会发现,在示波器屏幕中间的触发位置处有一个窄矩形,同时它的左数3格位置也有类似的窄矩形。说明这种矩形的重复周期大概是30us。当我们在被攻击电脑上左右拖动记事本窗口的边沿,则两个窄矩形之间的较宽矩形就会对应运动,并且当电脑屏幕上的记事本运动到屏幕边界处时,示波器显示的宽矩形也会靠近窄矩形的位置。

e4377538-e1be-11ee-a297-92fbcf53809c.gif

根据上述规律,我们可以大胆猜测在窄矩形之间的波形,对应的是电脑屏幕上的一行,示波器从左往右的波形对应于电脑屏幕的一行中从左往右的像素点。由于目前被攻击电脑的屏幕内容比较简单,因此可以认为它的每一行数据基本是相同的。这也就是为什么时域波形看上去是周期性的,重复周期是30us。如果对模拟视频制式比较熟悉,你会发现这一点与PAL或NTSC制式非常相似。

因此,我们可以尝试用时域波形的幅度对应于像素点的亮度,把每一行的波形都用绘图软件库中的函数绘制出来,行之间的顺序也参考模拟视频,把左侧出现的行放在上方,右侧出现的行放在下方。

e4c2ddda-e1be-11ee-a297-92fbcf53809c.png

大致猜出信号规律后,我们就可以开始着手写程序了。

我们需要先配置示波器程控开发环境(以Ubuntu系统为例):

1.安装python3.8

2.在罗德与施瓦茨官网搜索并下载RSVisa(对于Ubuntu系统,可下载deb包,并双击安装)

3.使用pip3 install命令安装pyvisa, rsinstrument, opencv-python等软件库 这样就配置完成了示波器程控开发环境。

然后我们找到罗德与施瓦茨在github上的账号中的RTH示波器范例,并逐步修改,实现自己的程序。

e4ddf570-e1be-11ee-a297-92fbcf53809c.png    

在上方代码中,我修改了RTH的设备地址、时基设置、通道刻度、触发方式(可用代码设置或保持示波器原先的设置)。

e4f0d348-e1be-11ee-a297-92fbcf53809c.png    

在上方代码中,设置了数据类型,并请求数据。然后获取通道的刻度和偏置,实现数据归一化。最终,用matplotlib绘制时域波形。

e5129992-e1be-11ee-a297-92fbcf53809c.png    

运行上述代码,你就能在程控电脑的屏幕上得到上图结果。你会观察到,现在程控电脑上得到的波形与示波器探测的波形完全一致,比较宽的矩形对应的就是被攻击电脑上的记事本窗口,而比较窄的矩形对应的就是被攻击电脑的屏幕边界。下一步,我们只要把波形幅度转为像素点亮度即可。

e523b826-e1be-11ee-a297-92fbcf53809c.png

成功运行了RTH程控范例后,我们即可对此范例程序进一步修改,以验证我们之前猜测的想法。 e53ff6bc-e1be-11ee-a297-92fbcf53809c.png      

上图是我修改后的代码,我做的主要修改是先对整个解码程序加了一个循环,这样解码的画面才可以不停刷新,而不是只显示一副画面。我用abs来对波形数据取模,相当于实现了AM解调,并把解调结果依次绘制在OpenCV的画布上。绘制顺序是从左往右绘制,到达行尾后换行,到达列尾后重新回到画布左上角。绘制完一副画面后,用imshow函数把画面显示出来。

e561b41e-e1be-11ee-a297-92fbcf53809c.gif

e577fc42-e1be-11ee-a297-92fbcf53809c.png

成功实现HDMI解码后,我们还可以查询HDMI规范,了解为什么这种高清数字信号能用模拟视频解调的方式解出来。

e591906c-e1be-11ee-a297-92fbcf53809c.png        

从上图可知HDMI在TMDS模式时,3个通道独立发送数据。它们对应于HDMI线缆中的3对差分线。更具体来说,这3对差分线中分别传输的数据就是R、G、B数据。

e5ab178a-e1be-11ee-a297-92fbcf53809c.png      

不仅如此,从上图可知这三路R、G、B数据是按像素点依次传输的。当某一行的像素点从左往右传输完成后,就会换行,传输下一行的RGB数据,这一点与模拟视频几乎一样,这就解释了为何我们可以用类似模拟视频解调的方式,实现HDMI信号的解码。不仅HDMI信号以此方式传输,早期的DVI信号也是这种方式。因此,也能用类似的方式解码。

除了这些视频接口外,显示屏内部的专用信号也存在信息泄露问题,这些问题可能由于显示屏在生产过程中内部电路板的差分走线的不对称而引入。

结语

通过本文,相信你已经学会如何自己写程序控制示波器,并实现对HDMI泄露信号的探测和解码。在日常工作中,罗德与施瓦茨的示波器和近场探头也是调试EMI问题的好帮手。除此之外,罗德与施瓦茨还提供了全套专业的EMC测试方案,帮助你整改目标设备的EMC问题。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 示波器
    +关注

    关注

    113

    文章

    6240

    浏览量

    184795
  • RGB
    RGB
    +关注

    关注

    4

    文章

    798

    浏览量

    58461
  • HDMI信号
    +关注

    关注

    0

    文章

    10

    浏览量

    7721
  • 无线电接收机

    关注

    0

    文章

    6

    浏览量

    1769
  • 时域波形
    +关注

    关注

    0

    文章

    10

    浏览量

    1900

原文标题:【实践分享】| 被夸爆的HDMI信号泄露检测技巧,一台示波器就能实现

文章出处:【微信号:罗德与施瓦茨中国,微信公众号:罗德与施瓦茨中国】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    示波器测量电压的步骤 数字示波器的基本操作方法

    示波器一种用于观察和测量电压随时间变化的电子仪器,它广泛应用于电子电路的调试和故障诊断中。以下是使用数字示波器测量电压的基本步骤和操作方法: 1. 准备阶段 1.1 检查设备 确保
    的头像 发表于 12-06 09:45 399次阅读

    示波器调试电路的方法 示波器与其他测量仪器的比较

    示波器调试电路的方法 示波器在调试电路时是一种非常有用的工具,它可以帮助工程师观察和分析电路中的电信号波形。以下是些使用
    的头像 发表于 11-28 09:35 198次阅读

    一种简单高效配置FPGA的方法

    本文描述了一种简单高效配置FPGA的方法,该方法利用微处理器从串行外围接口(SPI)闪存配置FPGA设备。这种方法减少了硬件组件、板空间和成本。
    的头像 发表于 10-24 14:57 555次阅读
    <b class='flag-5'>一种</b>简单高效配置FPGA的<b class='flag-5'>方法</b>

    示波器高压探头使用方法

    示波器高压探头是一种用于测量高电压信号的仪器,通常用于高压电源、电机、变压器等电气设备的测试。以下是示波器高压探头的详细使用方法
    的头像 发表于 10-03 16:43 422次阅读

    数字示波器的测量方法有哪三

    数字示波器一种广泛应用于电子测量领域的仪器,它能够实时显示电压波形,帮助工程师和技术人员对电子信号进行分析和测量。数字示波器的测量方法有很多种,不同的测量
    的头像 发表于 07-17 18:02 1615次阅读

    电流探头与示波器:毫安电流的探测与测量

    方面,电流探头与示波器的结合为我们提供了一种强大的工具,能够精确地探测和测量毫安级别的电流。 电流探头是一种传感器,用于将电路中的电流转换为示波器
    的头像 发表于 06-03 15:05 584次阅读
    电流探头与<b class='flag-5'>示波器</b>:毫安电流的<b class='flag-5'>探测</b>与测量

    示波器探头常用的校准方法

    示波器探头是连接被测信号与示波器的关键部件,其性能直接影响示波器对信号的捕获和显示。为了确保示波器系统的测量精度,对示波器探头进行适当的校准
    的头像 发表于 05-13 16:34 3509次阅读

    示波器探测不到信号怎么办

    当使用示波器时,如果探测不到信号,可能意味着存在些技术问题或配置错误。
    的头像 发表于 05-13 15:12 966次阅读

    示波器波形的观察方法 示波器波形不稳定的原因及处理方法

    示波器,作为电子工程领域中一种极其重要的测量工具,被广泛用于观测和分析电信号。通过示波器,我们可以直观地看到信号的波形,进而理解其频率、幅度、相位等关键信息。然而,在使用示波器时,有时
    的头像 发表于 05-10 16:05 5070次阅读

    示波器电流钳衰减比的设置方法及应用

    示波器电流钳是一种常用的测量工具,用于测量电流信号。在使用示波器电流钳时,正确设置衰减比是非常重要的。本文将介绍示波器电流钳衰减比的设置方法
    的头像 发表于 05-07 10:12 874次阅读

    示波器表笔:探测微弱信号的能力与应用

    微弱信号是项常见的任务。微弱信号可能是来自传感器、放大器输出或其他低幅度信号源的电压变化。示波器表笔是一种常用的测量工具,但在探测微弱信号时,其性能和限制需要得到充分考虑。本文将探讨
    的头像 发表于 04-23 10:08 1203次阅读
    <b class='flag-5'>示波器</b>表笔:<b class='flag-5'>探测</b>微弱信号的能力与应用

    示波器的使用方法 示波器的用途有哪些?

    示波器一种用于测量电压信号的仪器,它可以将电信号转换为可以在屏幕上显示的波形图形。在电子工程领域,示波器个必不可少的仪器,它可以用于许多不同的应用和测量。本文将详细介绍
    的头像 发表于 02-18 16:18 1923次阅读

    示波器的使用方法步骤 示波器的直流耦合和交流耦合的区别

    示波器一种广泛应用于电子测量的仪器,它用于显示电压波形、频率、相位等电信号的特性。下面将详细介绍示波器的使用方法步骤以及直流耦合和交流耦合的区别。
    的头像 发表于 02-04 13:36 2964次阅读

    示波器的使用方法步骤 示波器的主要功能和作用

    示波器一种用于显示电信号波形的仪器,它能够通过测量和显示电压随时间变化的图形,用于分析和诊断电路和信号的性质和特征。示波器广泛应用于电子、电力、通信等领域的实验、测试和维修工作中。
    的头像 发表于 01-22 14:54 1.6w次阅读

    SIGLENT示波器的使用方法

    SIGLENT示波器一种常见的电子测量仪器,广泛应用于电子、通信、计算机等领域。它可以用于观测和分析各种信号,帮助工程师进行电路设计、故障排查和调试等工作。在本文中,我们将详细介绍SIGLENT
    的头像 发表于 01-16 16:49 2482次阅读