
Удалённый перехват видеосигнала с использованием платформы программно-определяемого радио
Этот проект представляет собой программный набор инструментов для удалённого перехвата видеомониторов с помощью приёмника на основе программно-определяемого радио (SDR). Он использует побочные электромагнитные излучения от кабелей, передающих видеосигналы.
Растровое видео обычно передаётся по одной строке пикселей за раз, кодируясь как изменяющийся ток. Это порождает электромагнитную волну, которую можно уловить SDR-приёмником. Программное обеспечение в реальном времени сопоставляет измеренную напряжённость поля пикселя с оттенком серого. В результате формируется ложная цветовая оценка исходного видеосигнала.
Инструментарий использует немодифицированное серийное оборудование, что снижает затраты и повышает мобильность по сравнению с существующими решениями. Он допускает дополнительную постобработку, улучшающую отношение сигнал/шум. Атакующему не требуется заранее знать характеристики целевого видеодисплея. Все параметры, такие как разрешение и частота обновления, оцениваются с помощью программного обеспечения.
Программное обеспечение состоит из библиотеки на языке C, набора плагинов для различных фронтендов программно-определяемого радио (SDR) и графического пользовательского интерфейса (GUI) на Java. Это кроссплатформенное приложение, в котором все нативные библиотеки предварительно скомпилированы и упакованы в единый Java jar-файл.
Запустите файл JTempestSDR.jar двойным щелчком. Если он не запускается, вам потребуется перекомпилировать проект.
Это Java-обёртка и GUI. Она собирает все проекты и поддерживаемые плагины, включая сам 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
В Mac OS X команда может выглядеть так
make all JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
Примечание: это также скомпилирует плагины. Некоторые из них требуют дополнительных библиотек! Вы можете отключить компиляцию плагинов, отредактировав Makefile в JavaSDR.
Необходимо установить MinGW.
В Windows это также соберёт плагин SDRplay RSP. Сначала нужно установить SDR-драйвер с http://www.sdrplay.com/
Пример компиляции для x64 Windows
export PATH=$PATH:"/cygdrive/C/Program Files/Java/jdk<put_your_version_here>/bin"
make all JAVA_HOME=C:/PROGRA~1/Java/jdk<put_your_version_here> CC=x86_64-w64-mingw32-gcc ARCHNAME=X64
Замените <put_your_version_here> на вашу версию JDK.
При запуске плагина SDRplay убедитесь, что mir_sdr_api.dll и sdrplay_api.dll находятся в пути поиска библиотек (или в том же каталоге, что и исполняемый файл). Dll можно найти в C:/Program Files/SDRplay/API/x86 или C:/Program Files/SDRplay/API/x64 в зависимости от вашей архитектуры.
Если вы не планируете использовать RSP-донгл, этот шаг можно пропустить, отредактировав Makefile в каталоге JavaGUI. Удалите TSDRPlugin_SDRPlay из строки 89, изменив
PLUGINS += TSDRPlugin_SDRPlay TSDRPlugin_ExtIO
на
PLUGINS += TSDRPlugin_ExtIO
В Linux и OS X при компиляции GUI также будет компилироваться драйвер UHD, поэтому вам понадобятся установленные UHD и соответствующие библиотеки Boost (UHD установит их автоматически). Если драйверы UHD не нужны, вы можете пропустить их компиляцию, удалив строку 91 для Linux и строку 93 для OS X из Makefile в каталоге JavaGUI.
Все проекты можно собирать как в 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.
libuhd-dev