
148.500 MHzにラジオを合わせ、FM、USB、またはCWモードを選択し、スケルチを0または1に設定します。次に、ラジオのアンテナをモニターのHDMIポートに向けて伸ばします。すると、おめでとうございます—モニターから直接モールス信号で送信できるようになりました!
著者: TA1EEI (Efe Işık)
バージョン: 1.2
ライセンス: MIT(オープンソース / 教育・実験用)
VHFモニターRFトランスミッターは、通常のコンピューターディスプレイを短距離VHFモールス信号トランスミッターに変換するブラウザベースの実験ツールです。
特筆すべき点として、このプロジェクトは無線ハードウェア、RFトランスミッター、SDR、外部モデムを一切使用せずに動作します。最適化されたHTML5 Canvasレンダリングエンジンを使用して画面上のピクセル出力を精密に制御することで、ディスプレイ内部のビデオ処理ユニット(GPU/スケーラー)と伝送インターフェース(HDMI/DisplayPort)を操作し、サイドチャネル放射(TEMPEST)を通じて変調された電磁信号を直接放射します。
現代のビデオパイプラインは純粋に光学的なものではなく、高周波数で動作する高速デジタル電子機器です。このプロジェクトは**意図しない電磁放射(EMI)**を利用して、読み取り可能なRF信号を放送します。
安定した画像を表示するために、グラフィックスカードはフレームごと、ラインごとにビデオデータをモニターへ継続的にプッシュします。このピクセルストリームを制御する基本クロック周波数はピクセルクロック周波数($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)で強い電磁界を誘起し、RFキャリア波を空間に放射します。
この電磁放射に読み取り可能なデータをエンコードするために:
#000000)に切り替わります。クロック遷移は最小限のベースラインノイズに低下し、放射RF出力は崩壊します。これらのパターントグルのタイミングを標準化されたモールス符号の要素長(ドット=1単位、ダッシュ=3単位)に合わせることで、近くの無線受信機は可聴のCW/AMトーンを受信します。
異なるモニター解像度とリフレッシュレートは、異なる基本周波数を生成します。以下は、ディスプレイタイミングによって一般的に生成される計算済みターゲット周波数です:
高調波に関する注記: 基本ピクセルクロック周波数に加えて、強い2次および3次高調波もより高いバンド($2 \times f_{\text{pixel}}$、$3 \times f_{\text{pixel}}$)で検出できます。
navigator.languageを読み取り、UIを英語、トルコ語、フランス語、ドイツ語、スペイン語、または中国語に自動的にローカライズします。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アマチュア2mバンド) |
| 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ロー / 4mバンド) |