当前位置:网站首页>TEMPEST HDMI泄漏接收 1
TEMPEST HDMI泄漏接收 1
2022-06-25 06:38:00 【老邵的开源世界】
之前听说有个神奇的软件叫做tempestsdr,可以用sdr来接收显示器泄露出来的信号。
这个软件说实话很难安装,因为是java的,并且只给了代码。但是我看了他的代码其实核心就是AM解调,因此我有了自己写代码来实现这个功能的想法。
tempestsdr的名字其实不是随便起的,tempest是Temporary emanation and spurious transmission的缩写,专指这种类型的泄漏。
我用了另一个知名软件TVSharp也大致看到了HDMI泄漏的信号,进一步验证了我的想法,就是用AM解调并把结果依次一行行画出来就行。
以下是我实测的效果。
SDR接收HDMI泄露信号 无需tempestsdr_哔哩哔哩_bilibili-
https://www.bilibili.com/video/BV1b94y127Qh?spm_id_from=333.337.search-card.all.click但是如果要进一步改善效果要改代码,TVSharp是C#开发的,不开源,可以反编译看到代码,但是不能重新再编译了(主要是我懒得建一个C#工程,本就不喜欢windows开发)。
我主要习惯的开发环境还是Linux下的C/C++开发或者Python开发。我之前也用C++写过模拟电视接收的程序。但本次为了做一个尽量通俗易懂的教程,我打算用Python 2.7来开发。
首先,我找到一个叫做pyrtlsdr的包,它把rtlsdr的驱动封装了一下。
它里面有个例子
from pylab import *
from rtlsdr import *
sdr = RtlSdr()
# configure device
sdr.sample_rate = 2.4e6
sdr.center_freq = 95e6
sdr.gain = 4
samples = sdr.read_samples(256*1024)
sdr.close()
# use matplotlib to estimate and plot the PSD
psd(samples, NFFT=1024, Fs=sdr.sample_rate/1e6, Fc=sdr.center_freq/1e6)
xlabel('Frequency (MHz)')
ylabel('Relative power (dB)')
show()运行上面的代码就能看到下面的频谱图。

我基于这个代码来做了修改,因为我事先已经找到了频点,我只需要把时域信号画出来就行了,不需要频谱,因此我先把频谱绘制代码删掉了。然后我需要持续循环获得时域信号,并且为了调试,我还要把信号值打印到屏幕上。
修改后的代码:
from pylab import *
from rtlsdr import *
sdr = RtlSdr()
# configure device
sdr.sample_rate = 2.4e6
sdr.center_freq = 395.991e6
sdr.gain = 4
while True:
samples = sdr.read_samples(1*1024)
print (samples)
sdr.close()有了这段代码,如果你有一个rtlsdr插在电脑上,再找一个portapack,用信号源功能在395.991MHz上发射一个信号,就能看到没信号时终端上数字都很小,发出信号后,终端上的数字也变大。
后面我们要做的工作就是把这些大大小小的数字转化为颜色就行了。
未完待续,敬请期待!
边栏推荐
- Efficient exploration | an application practice of ES geographical location query
- [C language] add separator to string
- The most basic difference between clustering and classification.
- Event registration | Apache pulsar x kubesphere online meetup is coming
- 深入解析 Apache BookKeeper 系列:第三篇——读取原理
- Make fertilizer Safi from crop residues locally to increase yield by 30% and improve soil
- StreamNative Platform 1.5 版本发布,集成 Istio、支持 OpenShift 部署
- Event registration Apache pulsar x kubesphere online meetup hot registration
- Changing the background color of tab bar - changing the background color of tab bar
- Expression of fatherly love
猜你喜欢
![[Yu Yue education] engineering testing technology reference of Wenhua University](/img/69/50a8786ea062a541df9e07c1e16db5.jpg)
[Yu Yue education] engineering testing technology reference of Wenhua University

Following the last minor upgrade of nodemcu (esp8266)

Sqlmap advanced use – cookies

The king scheme in distributed locks - redisson

Debug through yalc before releasing NPM package

【他字字不提爱,却句句都是爱】

Design of PWM breathing lamp based on FPGA

弱大数定理的意义与证明

Ppt template of small fresh open class education courseware
![[he doesn't mention love, but every word is love]](/img/28/0c3ddad3dc9b1ef8d0618164f39e53.png)
[he doesn't mention love, but every word is love]
随机推荐
[Shangshui Shuo series] day 5
alphassl通配符证书送一个月
CTFHub-Web-信息泄露-目錄遍曆
What is the new business model of Taishan crowdfunding in 2022?
In depth analysis of Apache bookkeeper series: Part 3 - reading principle
Direct select sort and quick sort
【一起上水硕系列】Day 5
Streamnational platform version 1.5 is released, integrating istio and supporting openshift deployment
Make enough money to go back home
[acnoi2022] the structure of President Wang
Shandong finds clean energy that can be used by China for 3800 years? You should know the truth first
Sqlmap advanced use – cookies
Debug through yalc before releasing NPM package
shell 上下两行合并成一行
[learn FPGA programming from scratch -43]: vision chapter - technology evolution of chip design in the post Moore era -2- evolution direction
Message queue table structure for storing message data
深入解析 Apache BookKeeper 系列:第三篇——读取原理
Practice of hierarchical management based on kubesphere
48 pictures | teach you the performance monitoring, pressure testing and tuning of microservices by hand
Are you still doing the dishes yourself? Teach you how to make dishwasher controller with single chip microcomputer
https://github.com/roger-/pyrtlsdr