
सॉफ़्टवेयर-परिभाषित रेडियो प्लेटफ़ॉर्म का उपयोग करके दूरस्थ वीडियो अवगोपन
यह प्रोजेक्ट सॉफ़्टवेयर डिफ़ाइंड रेडियो (SDR) रिसीवर का उपयोग करके वीडियो मॉनिटरों की दूरस्थ जासूसी करने हेतु एक सॉफ़्टवेयर टूलकिट है। यह वीडियो सिग्नल ले जाने वाले केबलों से निकलने वाले विद्युतचुंबकीय उत्सर्जन (compromising emanations) का दोहन करता है।
Raster वीडियो आमतौर पर एक समय में पिक्सेल की एक पंक्ति के रूप में प्रसारित होता है, जो परिवर्ती धारा के रूप में एनकोड किया जाता है। यह एक विद्युतचुंबकीय तरंग उत्पन्न करता है जिसे SDR रिसीवर द्वारा ग्रहण किया जा सकता है। सॉफ़्टवेयर किसी पिक्सेल की प्राप्त क्षेत्र शक्ति (field strength) को वास्तविक समय में ग्रे-स्केल शेड पर मैप करता है। यह मूल वीडियो सिग्नल का फ़ॉल्स-कलर (असत्य रंग) अनुमान बनाता है।
टूलकिट बिना संशोधित, तैयार-उपलब्ध (off-the-shelf) हार्डवेयर का उपयोग करता है, जो मौजूदा समाधानों की तुलना में लागत कम करता है और गतिशीलता बढ़ाता है। यह अतिरिक्त पोस्ट-प्रोसेसिंग की अनुमति देता है जो सिग्नल-टू-नॉइज़ अनुपात में सुधार करता है। हमलावर को लक्षित वीडियो डिस्प्ले के बारे में पूर्व जानकारी होना आवश्यक नहीं है। रेज़ोल्यूशन और रिफ़्रेश रेट जैसे सभी पैरामीटर सॉफ़्टवेयर की सहायता से अनुमानित किए जाते हैं।
सॉफ़्टवेयर में 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 लाइब्रेरी पाथ में (या निष्पादन योग्य फ़ाइल के समान निर्देशिका में) हों। आप अपने आर्किटेक्चर के आधार पर dll को C:/Program Files/SDRplay/API/x86 या C:/Program Files/SDRplay/API/x64 में पा सकते हैं।
यदि आप 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 से Linux के लिए पंक्ति 91 और OS X के लिए पंक्ति 93 को हटाकर उनके संकलन को छोड़ सकते हैं।
सभी प्रोजेक्ट 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