当前位置:网站首页>Tempest HDMI leak receive 1

Tempest HDMI leak receive 1

2022-06-25 07:24:00 Lao Shao's open source world

I heard that there is a magical software called tempestsdr, It can be used sdr To receive the signal leaked from the display .

This software is really hard to install , the reason being that java Of , And only the code . But the core of his code is AM demodulation , So I have the idea of writing my own code to realize this function .

tempestsdr In fact, the name of is not casually named ,tempest yes Temporary emanation and spurious transmission Abbreviation , Refers specifically to this type of leakage .

I used another well-known software TVSharp I can also roughly see HDMI Leaking signal , It further verified my idea , Just use AM Demodulate and draw the result line by line .

Here are the results I measured .

SDR receive HDMI Leakage signal There is no need to tempestsdr_ Bili, Bili _bilibili-https://www.bilibili.com/video/BV1b94y127Qh?spm_id_from=333.337.search-card.all.click But if you want to further improve the effect, you need to change the code ,TVSharp yes C# Developed , Not open source , You can decompile and see the code , But you can't recompile ( The main reason is that I am too lazy to build one C# engineering , I don't like it windows Development ).

The development environment I am mainly used to is Linux Under the C/C++ Develop or Python Development . I used to use C++ I have written the program of analog TV reception . But this time in order to make a tutorial as easy as possible , I'm going to use Python 2.7 To develop .

First , I found one called pyrtlsdr My bag , It is the rtlsdr The driver of is encapsulated .

GitHub - roger-/pyrtlsdr: A Python wrapper for librtlsdr (a driver for Realtek RTL2832U based SDR's)A Python wrapper for librtlsdr (a driver for Realtek RTL2832U based SDR's) - GitHub - roger-/pyrtlsdr: A Python wrapper for librtlsdr (a driver for Realtek RTL2832U based SDR's)https://github.com/roger-/pyrtlsdr

There is an example in it

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()

Run the above code to see the following spectrum diagram .

  I made changes based on this code , Because I have found the frequency point in advance , I just need to draw the time domain signal , No spectrum required , So I deleted the spectrum plotting code first . Then I need to cycle continuously to get the time domain signal , And for debugging , I also want to print the signal value on the screen .

The modified code :

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()

With this code , If you have one rtlsdr Plug it into the computer , Find another one portapack, Use the signal source function in 395.991MHz Send a signal on , You can see that the number on the terminal is very small when there is no signal , After the signal is sent , The number on the terminal also becomes larger .

What we need to do later is to convert these large and small numbers into colors .

To be continued , Coming soon !

原网站

版权声明
本文为[Lao Shao's open source world]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/176/202206250457432488.html