
Удалённый перехват видео с использованием платформы программно-определяемого радио
Этот проект представляет собой программный инструментарий для удалённого перехвата видеомониторов с помощью программно-определяемого радио (SDR) приёмника. Он использует побочные электромагнитные излучения от кабелей, передающих видеосигналы.
Растровое видео обычно передаётся построчно, каждая строка — это последовательность пикселей, закодированная изменяющимся током. Это порождает электромагнитную волну, которую можно уловить SDR-приёмником. Программа в реальном времени преобразует измеренную напряжённость поля каждого пикселя в оттенок серого. Так формируется ложная цветовая оценка исходного видеосигнала.
Инструментарий использует немодифицированное серийное оборудование, что снижает стоимость и повышает мобильность по сравнению с существующими решениями. Он допускает дополнительную постобработку, улучшающую отношение сигнал/шум. Атакующему не требуется заранее знать характеристики целевого видеодисплея. Все параметры, такие как разрешение и частота обновления, оцениваются с помощью программного обеспечения.
Программное обеспечение состоит из библиотеки на языке C, набора плагинов для различных фронтендов программно-определяемого радио (SDR) и графического интерфейса пользователя (GUI) на Java. Это кроссплатформенное приложение: все нативные библиотеки предварительно скомпилированы и упакованы в один Java jar-файл.
Дважды щёлкните по файлу JTempestSDR.jar для запуска. Если он не запускается, вам потребуется перекомпилировать проект.
Это Java-обёртка и графический интерфейс. Он собирает все проекты и поддерживаемые плагины, включая сам Java GUI. Перейдите в папку JavaGUI и выполните
make all
Если не удаётся найти «jni.h», выполните одну из следующих команд:
make all JAVA_HOME=path_to_jdk_installation
На Windows 8 x64 это может выглядеть так
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45
Чтобы принудительно скомпилировать для X64 или X32 (если ваш компилятор это поддерживает), выполните следующее
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45 ARCHNAME=X64
На Ubuntu с openjdk это может выглядеть так
make all JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
Примечание: При этом также будут скомпилированы плагины. Некоторые из них требуют дополнительных библиотек! Вы можете отключить компиляцию плагинов, отредактировав Makefile в JavaSDR.
Вам необходимо установить MinGW.
В Windows это также соберёт плагин Mirics SDR для USB-донгла FlexiTV™ MSi3101 SDR. Сначала вам нужно установить драйвер SDR с http://www.mirics.com/
Чтобы скомпилировать плагин, перейдите в папку плагина и выполните
make all MIRICS_HOME=path_to_mirics_installation
На Windows 8 x64 это может выглядеть так
make all MIRICS_HOME=C:/PROGRA~1/MiricsSDR
При использовании Mirics Plugin убедитесь, что mir_sdr_api.dll находится в пути поиска библиотек (или в той же директории, что и исполняемый файл). Вы можете найти dll в C:/Program Files/MiricsSDR/API/x86 или C:/Program Files/MiricsSDR/API/x64 в зависимости от вашей архитектуры.
Если вы не собираетесь использовать донгл Mirics, вы можете пропустить этот шаг, отредактировав Makefile в директории JavaGUI. Удалите TSDRPlugin_Mirics из строки 89, изменив её с
PLUGINS += TSDRPlugin_Mirics TSDRPlugin_ExtIO
на
PLUGINS += TSDRPlugin_ExtIO
В Linux и OS X компиляция GUI также скомпилирует драйвер UHD, поэтому вам потребуется установить UHD и соответствующие библиотеки boost (UHD установит их автоматически). Если драйверы UHD не нужны, вы можете пропустить их компиляцию, удалив строку 91 для Linux и строку 93 для OS X из Makefile в директории JavaGUI. Вот как эти строки выглядят по умолчанию:
PLUGINS += TSDRPlugin_UHD
Все проекты можно собирать как в Eclipse, так и с помощью make.
Перейдите в папку и выполните
make all
В результате будет создана библиотека, которую можно найти в подкаталоге bin. Заголовочные файлы, необходимые для взаимодействия с ней, находятся в src/include.
Перейдите в каталог плагина и выполните
make all
Это должно работать, если только для самого плагина нет особых требований. В этом случае ищите README.
В разных папках находятся разные подпроекты. Папка TempestSDR содержит основную C-библиотеку. Проект нацелен на кроссплатформенность с поддержкой плагинов для SDR-фронтендов в разных папках.
Проект собирается в Eclipse с плагином CDT (но это не обязательно). В настоящее время поддерживаются Windows, Linux и OS X. Некоторые плагины фронтендов могут не быть кроссплатформенными. Также вам потребуется установленный Java Development Kit (JDK).
Вам необходимо установить MinGW, а команды gcc и make должны быть доступны в PATH. Также javac и javah должны быть доступны в PATH.
Будет объявлено позже.