Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Tempest LCD: Playing songs from your LCD monitor with a radio (github.com/luamfb)
121 points by signa11 on Aug 18, 2022 | hide | past | favorite | 31 comments



It's far worse than just being able to listen to music, with the right receiver and software you can decode the image from the monitor. Here's a quick overview. https://hackaday.com/2020/05/14/tempest-comes-to-gnu-radio/

I have verified that it works with my equipment (alarmingly well), though higher resolutions are harder to get a clear image out of. It even works with multiple monitors in close proximity, you just have to select the right parameters. Having an appropriate antenna helps avoid interference and improve the quality.


Relatedly, making the monitor itself emit the sound (might not be very loud or audible depending on the model) was discovered accidentally in this article: https://news.ycombinator.com/item?id=8856829


THIS is what I want to see more of. These fun hacks like this are why I got into programming to begin with. Computers these days has gotten so dreadfully dull.


- Tempest for Eliza.

- Sic IRC client piped to awk (delete JOIN and QUIT msgs) and flite with a diff pitch and tone for each nick.

- Geekcode.

- Xaos.

- Nethack/Slashem. Lateral thinking it's a must.

- Recreational math books with links to old but functioning C, Basic (Just rewrite it in Perl) and Rexx. Use Gnuplot for plots.

-Fldigi+websdr+pulseaudio+preys+loopback OR sndio monitor mode under OpenBSD. Aucat and go-sstv under Obsd or qsstv under Linux.

-Minimodem hooked to icecast. Cast a random but good text adventure daily from https://if-archive.org and cast a review for it made with flite with the SLT or KAL voice. For example, Anchorhead at games/zcode.


Nice. I wonder if something like this has been ever used to exfiltrate data from some air gapped computer.

Some years ago I tried the FM transmitter via GPIO hack for the raspberry pi. The range was surprisingly high, around 100m. First google result. https://linuxhint.com/turn-raspberry-pi-fm-transmitter/


Definitely. All you have to do is look at American military intelligence's insistence on using SCIFs for viewing and working with sensitive electronic (and physical, but for more boring reasons) documentation.

https://en.wikipedia.org/wiki/Sensitive_compartmented_inform...

They know it's important to limit what kind of emissions make it from your equipment to the outside world because they've successfully used exactly these techniques in the past to extract information from others.


It very much has been exploited since the beginning of computing https://en.wikipedia.org/wiki/Tempest_(codename)


Yeah. If you've ever wondered why, when you type in a password, it shows up as asterisks or dots, now you know. TEMPEST is why.


Does showing asterisks or dots help mask the signals from the keyboard vs not showing anything (ala most unixy auth)?

I'm pretty sure passwords are not shown to reduce shoulder surfing, especially from across the room.


The dots are just there for shoulder surfing and to give a visual feedback to the user.

If you want to steal a password, all the cool kids use a microphone or your phone's accelerometers.

https://arxiv.org/abs/1609.09359

https://www.cise.ufl.edu/~traynor/papers/marq-ccs11.pdf

https://phys.org/news/2017-04-criminals-pin-tracking-motion....


Those are much more recent attacks. We're talking about a time when CRT screens were the norm, they are noisy enough to read from quite a distance.

> A cathode-ray tube (CRT) is a vacuum tube containing one or more electron guns, which emit electron beams that are manipulated to display images on a phosphorescent screen.

https://en.wikipedia.org/wiki/Cathode-ray_tube

That causes a bit more signal than a keyboard, mic, or MEMS accelerometer, eh? :)


Nice to see someone else had one of my stray day dreams and implemented it. Albeit the version I thought of was a bit more malicious. In principle, if you know the frequency that a TV network broadcasts on, you could shape an that when broadcast happens to be coincident with a wifi packet. There was about a decade long window between when wifi was adopted to when analog TV was phased out where you could have tricked a TV station into transmitting some hack over a wide area.

Also worth noting the tempest trick should work in reverse. If you have a composite video to HDMI converter, whatever radio signal is on the video component should translate directly to pixels on screen. The hacky mans SDR.


Making nearby radios play music is a very old hack:

https://adwaterandstir.com/2017/05/30/play-daisy/


I did the same with a ZX81 that a friend's father owned. We felt like kings.


I wonder if you could play PCM audio with this technique. I'm sure it would be very low fidelity, but it would be cool if you could make out a human voice.


Good question, I used PDM to play a song with vocals ( https://github.com/anfractuosity/musicplayer ) by twiddling the memory bus and picking up via an AM radio. So wouldn't be surprised if it was possible with an LCD.


Reminds me of this watch I used to have way back in the day, maybe late 90's... It had a little eye and you would put it in some kind of programming mode and the eye would read the signals on the screen. If I recall correctly it looked a lot like this, just flashing lines on the screen.


Timex Data Link?

LGR has an Oddware video about it:

https://m.youtube.com/watch?v=GCHHzw4s5W4


Yes that's it!!!! Holy cow that takes me back.


Very cool! Although I'm curious about this part

> slowly change the frequency it's tuned to until you hear the sound. You might have to run the command a few times until finding the right frequency.

I don't really know much about this stuff, but shouldn't it be possible to calculate the frequency?


That’s really neat, I recall having a computer in the late 90s (maybe 2000?) with some cheap speakers next to the monitor. When scrolling text you’d get static in those speakers, presumably for the same reason (well, the earlier CRT example of this craziness)


I remember doing something like this with a CRT monitor way back in the early 2000s.


Yup. Called Tempest for Eliza (beautiful, memorable name)

http://www.erikyyy.de/tempest/



It might be possible to train a neural network on the RF emissions vs the image displayed and make it able to reconstruct the image based on the RF emissions. Might be blurry and noisy but worth a try!



What? How do you solve computing problems without a neural network? Surely such a thing is not possible.


It’s true! They’re teaching kids at the local school how to build AI to help assist with their grammar and arithmetic!


If the computer hasn't learned how to solve the problem on its own, is the problem really solved?


Eh, wait. Tempest for Eliza works on LCD monitors too. I tried it with xvidtune to match the settings and the tune worked perfectly, and I did this over 10 years ago.


If we link an AM receiver with a machine learning model, we should be able to train the model to recognize patterns on the monitor.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: