本项目是一个软件工具包,用于利用软件定义无线电(SDR)接收机远程窃听视频监视器。它利用的是承载视频信号的线缆所产生的泄漏发射(compromising emanations)。
光栅视频通常一次传输一行像素,并以变化的电流进行编码。这会生成可以被SDR接收机拾取的电磁波。该软件将接收到的像素场强实时映射为灰度阴影,从而形成对原始视频信号的伪彩色估算。
该工具包使用未经修改的现成硬件,与现有解决方案相比,降低了成本并提高了机动性。它还允许进行额外的后处理,从而提高信噪比。攻击者无需事先了解目标视频显示器。分辨率、刷新率等所有参数均借助软件进行估算。
该软件由一个用C语言编写的库、一系列用于各种软件定义无线电(SDR)前端的插件,以及一个基于Java的图形用户界面(GUI)组成。它是一个多平台应用程序,所有原生库均已预编译并打包进单个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
在装有openjdk的Ubuntu上,可能如下所示:
make all JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
注:这也会编译插件。其中一些插件需要额外的库!你可以通过编辑JavaSDR中的Makefile来禁用插件编译。
你需要安装MinGW。
在Windows上,这还会为FlexiTV™ MSi3101 SDR USB加密狗构建Mirics SDR插件。你首先需要从 http://www.mirics.com/ 安装SDR驱动程序。
为了编译该插件,请进入插件文件夹并输入:
make all MIRICS_HOME=path_to_mirics_installation
在Windows 8 x64上,可能如下所示:
make all MIRICS_HOME=C:/PROGRA~1/MiricsSDR
如果运行Mirics插件,请确保mir_sdr_api.dll位于库路径中(或与可执行文件位于同一目录)。 你可以根据你的架构在C:/Program Files/MiricsSDR/API/x86或C:/Program Files/MiricsSDR/API/x64中找到该dll。
如果你不打算使用Mirics加密狗,可以通过编辑JavaGUI目录中的Makefile来跳过此步骤。删除第89行中的TSDRPlugin_Mirics,将其从
PLUGINS += TSDRPlugin_Mirics TSDRPlugin_ExtIO
改为
PLUGINS += TSDRPlugin_ExtIO
在Linux和OS X上,编译GUI时也会编译UHD驱动程序,因此你需要安装UHD及对应的boost库(UHD会自动安装它们)。如果你不需要UHD驱动程序,可以通过删除JavaGUI目录下Makefile中适用于Linux的第91行和适用于OS X的第93行来跳过它们的编译。这些行默认内容如下:
PLUGINS += TSDRPlugin_UHD
所有项目也都可以使用Eclipse和make构建。
进入该文件夹并输入:
make all
这将生成库,该库可在bin子目录中找到。你与其交互所需的头文件位于src/include中。
进入插件目录并输入:
make all
除非插件本身有特殊要求,否则这应该可以正常工作。如果遇到这种情况,请查看README。
不同的文件夹包含不同的子项目。TempestSDR文件夹包含主要的C库。该项目旨在跨平台,并在不同文件夹中为SDR前端提供插件支持。
该项目使用带有CDT插件的Eclipse构建(但这不是必需的)。目前它支持Windows、Linux和OS X。某些前端插件可能不是跨平台的。你还需要安装Java开发工具包(JDK)。
你需要安装MinGW,并且gcc和make命令需要在PATH中。另外,javac和javah也需要在PATH中。
即将公布。