
Video-Abhören aus der Ferne mithilfe einer Software-defined-Radio-Plattform
Dieses Projekt ist ein Software-Toolkit zum Fernabhören von Videomonitoren mit einem Software Defined Radio (SDR)-Empfänger. Es macht sich kompromittierende Abstrahlungen von Kabeln zunutze, die Videosignale übertragen.
Rastervideo wird normalerweise eine Pixelzeile nach der anderen übertragen, kodiert als variierender Strom. Dadurch entsteht eine elektromagnetische Welle, die von einem SDR-Empfänger aufgefangen werden kann. Die Software bildet die empfangene Feldstärke eines Pixels in Echtzeit auf eine Graustufe ab. Dies ergibt eine Falschfarbenschätzung des ursprünglichen Videosignals.
Das Toolkit verwendet unveränderte handelsübliche Hardware, was die Kosten senkt und die Mobilität im Vergleich zu bestehenden Lösungen erhöht. Es ermöglicht eine zusätzliche Nachbearbeitung, die das Signal-Rausch-Verhältnis verbessert. Der Angreifer benötigt keine Vorkenntnisse über das Ziel-Videodisplay. Alle Parameter wie Auflösung und Bildwiederholfrequenz werden mit Hilfe der Software geschätzt.
Die Software besteht aus einer in C geschriebenen Bibliothek, einer Sammlung von Plug-ins für verschiedene Software Defined Radio (SDR)-Frontends und einer Java-basierten grafischen Benutzeroberfläche (GUI). Sie ist eine plattformübergreifende Anwendung, bei der alle nativen Bibliotheken vorkompiliert und in einer einzigen Java-JAR-Datei verpackt sind.
Doppelklicken Sie auf die Datei JTempestSDR.jar, um sie zu starten. Wenn sie nicht startet, müssen Sie das Projekt neu kompilieren.
Dies ist der Java-Wrapper und die GUI. Es erstellt alle Projekte und unterstützten Plugins einschließlich der Java-GUI selbst. Wechseln Sie in den Ordner JavaGUI und geben Sie Folgendes ein
make all
Wenn „jni.h" nicht gefunden wird, sollten Sie einen der folgenden Befehle ausführen:
make all JAVA_HOME=path_to_jdk_installation
Unter Windows 8 x64 könnte das wie folgt aussehen
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45
Um die Kompilierung für X64 oder X32 zu erzwingen (sofern Ihr Compiler dies unterstützt), führen Sie Folgendes aus
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45 ARCHNAME=X64
Unter Ubuntu mit openjdk könnte es wie folgt aussehen
make all JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
Unter Mac OSX könnte der Befehl wie folgt aussehen
make all JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
Hinweis: Dadurch werden auch die Plugins kompiliert. Einige von ihnen benötigen zusätzliche Bibliotheken! Sie können die Plugin-Kompilierung deaktivieren, indem Sie das Makefile in JavaSDR bearbeiten.
Sie müssen MinGW installiert haben.
Unter Windows wird dadurch auch das SDRplay-RSP-Plugin erstellt. Sie müssen zuerst den SDR-Treiber von http://www.sdrplay.com/ installieren.
Beispiel für die Kompilierung für Windows x64
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
Ersetzen Sie <put_your_version_here> durch Ihre JDK-Version.
Wenn Sie das SDRplay-Plugin ausführen, stellen Sie sicher, dass sich mir_sdr_api.dll und sdrplay_api.dll im Bibliothekspfad befinden (oder im selben Verzeichnis wie die ausführbare Datei). Die DLL finden Sie in C:/Program Files/SDRplay/API/x86 oder C:/Program Files/SDRplay/API/x64, je nach Architektur.
Wenn Sie den RSP-Dongle nicht verwenden möchten, können Sie diesen Schritt überspringen, indem Sie das Makefile im JavaGUI-Verzeichnis bearbeiten. Entfernen Sie TSDRPlugin_SDRPlay aus Zeile 89 und ändern Sie die Zeile von
PLUGINS += TSDRPlugin_SDRPlay TSDRPlugin_ExtIO
zu
PLUGINS += TSDRPlugin_ExtIO
Unter Linux und OS X wird beim Kompilieren der GUI auch der UHD-Treiber kompiliert. Sie müssen daher UHD und die entsprechenden Boost-Bibliotheken installiert haben (UHD installiert diese automatisch). Wenn Sie die UHD-Treiber nicht benötigen, können Sie deren Kompilierung überspringen, indem Sie Zeile 91 für Linux und Zeile 93 für OS X aus dem Makefile im JavaGUI-Verzeichnis entfernen.
Alle Projekte können sowohl mit Eclipse als auch mit make erstellt werden.
Wechseln Sie in den Ordner und geben Sie Folgendes ein
make all
Dies erzeugt die Bibliothek, die im Unterordner bin zu finden ist. Die Header-Dateien, die Sie für die Anbindung benötigen, befinden sich in src/include.
Wechseln Sie in ein Plugin-Verzeichnis und geben Sie Folgendes ein
make all
Dies sollte funktionieren, sofern es nichts gibt, das für das Plugin selbst spezifisch ist. Suchen Sie in diesem Fall nach einer README.
Die verschiedenen Ordner enthalten die verschiedenen Teilprojekte. Der Ordner TempestSDR enthält die Haupt-C-Bibliothek. Das Projekt zielt darauf ab, plattformübergreifend zu sein, mit Plugin-Unterstützung für SDR-Frontends in verschiedenen Ordnern.
Das Projekt wird mit Eclipse und dem CDT-Plugin erstellt (dies ist jedoch nicht erforderlich). Derzeit werden Windows, Linux und OS X unterstützt. Einige Frontend-Plugins sind möglicherweise nicht plattformübergreifend. Sie benötigen außerdem ein installiertes Java Development Kit (JDK).
Sie müssen MinGW installiert haben, und die Befehle gcc und make müssen sich in Ihrem PATH befinden. Außerdem müssen javac und javah in Ihrem PATH sein.
libuhd-dev