作者: TA1EEI (Efe Işık)
版本: 1.2
许可证: MIT(开源 / 教育与实验用途)
VHF 显示器射频发射器 是一款基于浏览器的实验性工具,可将普通计算机显示器转变为短距离 VHF 摩尔斯电码发射器。
值得注意的是,本项目 无需任何无线电硬件、射频发射器、SDR 或外部调制解调器 即可运行。通过使用优化的 HTML5 Canvas 渲染引擎精确控制屏幕上的像素输出,它操纵显示器内部的视频处理单元(GPU/缩放器)和传输接口(HDMI/DisplayPort),通过侧信道辐射(TEMPEST)直接发射经过调制的电磁信号。
现代视频管线并非纯粹的光学系统;它们是工作在高频下的高速数字电子设备。本项目利用 非故意电磁辐射(EMI) 来广播可读的射频信号。
为了显示稳定的图像,显卡会持续逐帧、逐行地将视频数据推送到显示器。控制这一像素流的基础时钟频率被称为 像素时钟频率($f_{\text{pixel}}$)。
像素时钟根据总帧尺寸(包括有效显示区域加上水平和垂直消隐间隔)乘以屏幕刷新率计算得出:
$$f_{\text{pixel}} = H_{\text{total}} \times V_{\text{total}} \times f_{\text{refresh}}$$
其中:
计算示例(标准 1080p @ 60Hz):
当屏幕显示纯黑色或静态背景时,视频电缆上的信号电流保持相对均匀。
然而,当应用程序渲染交替的 $1 \times 1$ 像素图案(黑色 #000000 和白色 #FFFFFF 像素并排交替)时,每个相邻的时钟周期都会迫使显示接口串行器(HDMI 中的 TMDS 或 FRL;DisplayPort 中的主链路通道)快速切换其电压状态。
这种最大状态切换会在精确的像素时钟频率(148.500 MHz)处感应出强电磁场,将射频载波广播到空间中。
为了将可读数据编码到这种电磁辐射中:
#000000)。时钟转换降至最低基线噪声,辐射射频输出随之消失。通过将这些图案切换的时序与标准化的 摩尔斯电码元素时长(点 = 1 个单位,划 = 3 个单位)相匹配,附近的无线电接收器即可拾取可听的 CW/AM 音调。
不同的显示器分辨率和刷新率会产生不同的基频。以下是显示器时序通常生成的目标频率计算结果:
关于谐波的说明: 除了基频像素时钟频率外,在更高频段($2 \times f_{\text{pixel}}$、$3 \times f_{\text{pixel}}$)也可以检测到较强的二次和三次谐波。
navigator.language 并自动将界面本地化为英语、土耳其语、法语、德语、西班牙语或中文。performance.now())探测分辨率和刷新率,动态预测当前发射频率。要使用手持对讲机(例如 Quansheng、Baofeng、Yaesu、Icom)或 SDR(RTL-SDR、HackRF、Airspy)收听发射信号:
148.500 MHz)。如果您在研究、学术工作或技术实验中使用本项目,请按以下格式引用:
@software{isik2026vhf,
author = {Isik, Efe},
title = {VHF Monitor RF Transmitter: Browser-Based TEMPEST / EMI Side-Channel Morse Generator},
year = {2026},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{[https://github.com/TA1EEI/vhf-morse-transmitter-monitor](https://github.com/TA1EEI/vhf-morse-transmitter-monitor)}},
license = {MIT}
}
| 分辨率 | 刷新率(Hz) | 总时序($H_{\text{total}} \times V_{\text{total}}$) | 基频目标频率 |
|---|
| 1920 x 1080 | 60 Hz | $2200 \times 1125$ | 148.500 MHz(VHF 业余 2 米波段) |
| 1920 x 1080 | 144 Hz | $2200 \times 1125$ | 356.400 MHz(UHF 军用 / 航空) |
| 2560 x 1440 | 60 Hz | $2720 \times 1481$ | 241.500 MHz(VHF 高频段) |
| 1280 x 720 | 60 Hz | $1650 \times 750$ | 74.250 MHz(VHF 低频段 / 4 米波段) |