Ваш компьютер — радиопередатчик — как System Bus Radio превращает процессор в источник AM-сигнала
Представьте ситуацию: компьютер полностью изолирован от внешнего мира — нет ни интернета, ни Bluetooth, ни USB-портов, даже звуковая карта отключена. Казалось бы, передать данные невозможно. Но оказывается, даже в таких условиях компьютер может «кричать» — буквально излучать радиоволны, которые можно поймать обычным приемником. Именно это и демонстрирует удивительный проект System Bus Radio.
Что это за проект?
System Bus Radio — это программа на языке C, которая использует электромагнитное излучение процессора для передачи AM-радиосигнала. Причем для этого не требуется никакого специального оборудования — только сам компьютер и радиоприемник.
Проект создан не просто как интересный эксперимент, но и как наглядная демонстрация уязвимостей в системах с так называемым «воздушным зазором» (air gap), которые считаются максимально защищенными от утечек данных.
Как это работает: магия низкоуровневого программирования
Технически программа использует инструкцию _mm_stream_si128, которая записывает данные в память, минуя кэш процессора. Такие операции создают электромагнитные помехи в широком диапазоне частот. Автор обнаружил, что на определенных частотах (например, 1580 kHz) эти помехи можно принять как AM-сигнал.
Вот как выглядит базовый принцип работы:
_mm_stream_si128(...); // Специальная инструкция для генерации сигнала
Интересно, что простой инкремент переменной (x++) тоже работает, но дает менее стабильный сигнал. Автор продолжает эксперименты, чтобы сделать метод более универсальным.
Практическое применение: от демонстрации до безопасности
- Образовательные цели — наглядная демонстрация принципов работы процессоров и электромагнитного излучения
- Исследования безопасности — изучение возможных каналов утечки данных из изолированных систем
- Необычный эксперимент — возможность «поиграть» с радиопередачей без специального оборудования
Как попробовать самому
- Клонируйте репозиторий:
git clone https://github.com/fulldecent/system-bus-radio.git
- Соберите проект:
make
- Запустите с примером мелодии:
./main ../../tunes/mary_had_a_little_lamb.tune
- Настройте AM-приемник на частоту около 1580 kHz и разместите антенну рядом с клавиатурой (лучше всего работает на MacBook Air 2015 года).
Технические детали для любознательных
Проект использует:
- SSE-инструкции для генерации сигнала
- Высокоточные таймеры для модуляции
- Квадратно-волновую модуляцию сигнала
Схема модуляции:
|<--------------------TIME-------------------->|
| |
|‾|_|‾|_|‾|_____________|‾|_|‾|_|‾|_____________
| | | |
|<------SIGNAL--------->| | |
| |
|<->| CARRIER
Кому будет интересен этот проект?
- Разработчикам, интересующимся низкоуровневым программированием
- Специалистам по информационной безопасности
- Преподавателям компьютерных наук
- Радиолюбителям и всем, кому интересны необычные технические эксперименты
Проект активно развивается — авторы приглашают всех желающих тестировать программу на разных устройствах, особенно на Raspberry Pi и других встраиваемых системах, где меньше экранирование.