本项目是一个软件工具包,可使用软件无线电(SDR)接收机远程窃听视频监控器。它利用承载视频信号的线缆所产生的泄密辐射。
光栅视频通常以可变电流编码,逐行像素地传输。这会生成一种能被 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
在 Mac OSX 上,命令可能如下所示:
make all JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
注意:这也会编译插件。其中一些插件需要额外的库!你可以通过编辑 JavaSDR 中的 Makefile 来禁用插件编译。
你需要安装 MinGW。
在 Windows 上,这还会构建 SDRplay RSP 插件。你首先需要从 http://www.sdrplay.com/ 安装 SDR 驱动程序。
以下是如何为 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 位于库路径中(或与可执行文件位于同一目录)。根据你的系统架构,你可以在 C:/Program Files/SDRplay/API/x86 或 C:/Program Files/SDRplay/API/x64 中找到这些 dll。
如果你不打算使用 RSP 适配器,可以通过编辑 JavaGUI 目录中的 Makefile 跳过此步骤。将第 89 行中的 TSDRPlugin_SDRPlay 移除,把它从
PLUGINS += TSDRPlugin_SDRPlay TSDRPlugin_ExtIO
改为
PLUGINS += TSDRPlugin_ExtIO
在 Linux 和 OS X 上,编译 GUI 时也会编译 UHD 驱动程序,因此你需要安装 UHD 和相应的 boost 库(UHD 会自动安装它们)。如果你不需要 UHD 驱动程序,可以删除 JavaGUI 目录中 Makefile 的第 91 行(Linux)和第 93 行(OS X),以跳过它们的编译。
所有项目都可以使用 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 中。
libuhd-dev