
वेनम एक लाइब्रेरी है जिसे चुराए गए ब्राउज़र सॉकेट का उपयोग करके चोरी-छिपे संचार करने के लिए डिज़ाइन किया गया है।
Venom एक C++ लाइब्रेरी है जो संचार करने का एक वैकल्पिक तरीका प्रदान करती है। एक सॉकेट बनाने के बजाय जिसे प्रोसेस तक वापस ट्रेस किया जा सकता है, यह एक नया "छिपा हुआ" (कोई विंडो नहीं दिखाई जाती) डिटैच किया हुआ Edge प्रोसेस बनाता है (Edge को चुना गया क्योंकि यह एक ब्राउज़र है जो हर Windows 10+ पर इंस्टॉल होता है और संदेह पैदा नहीं करेगा) और नेटवर्क ऑपरेशन करने के लिए उसके एक सॉकेट को चुरा लेता है।
डिटैच किया हुआ ब्राउज़र प्रोसेस बनाने का लाभ यह है कि इसे उपयोगकर्ता द्वारा गलती से बंद किए जाने का कोई खतरा नहीं होता और सॉकेट मौजूद रहते हैं लेकिन किसी भी साइट से संचार नहीं कर रहे होते, इसलिए संभावित टकराव से बचा जा सकता है।

Venom एक एकल C++ हेडर फ़ाइल है, इसलिए आप इसे अपने प्रोजेक्ट में शामिल कर सकते हैं और इसे निम्नानुसार उपयोग कर सकते हैं:
Venom venom = Venom(L"127.0.0.1", 3110);
if (!venom.VenomObtainSocket()) {
std::cerr << "[ - ] Failed to get socket." << std::endl;
venom.~Venom();
return -1;
}
// Do your stuff here.
...
venom.~Venom();
आप उदाहरण देख सकते हैं जो दिखाता है कि डेटा भेजने या प्राप्त करने के लिए सॉकेट का उपयोग कैसे करें।
मुख्य कारण जिसके चलते यह काम करता है, या सटीक कहें तो, बिना किसी समस्या के सॉकेट (संभवतः कनेक्टेड) के साथ भेजना और प्राप्त करना क्यों काम करता है, फ़ंक्शन दस्तावेज़ीकरण में है।
इससे पहले कि मैं इसके बारे में और बताऊँ, मैंने पहले से खोले गए प्रोसेस का उपयोग करने के बजाय एक नया Edge प्रोसेस बनाने का विकल्प चुना, 2 मुख्य कारणों से:
आप नहीं जान सकते कि ब्राउज़र सॉकेट पहले से उपयोग में है या नहीं और यदि आप डेटा प्राप्त करने का प्रयास कर रहे हैं तो इससे टकराव हो सकता है।
आपके द्वारा बनाया गया प्रोसेस उपयोगकर्ता द्वारा किसी भी समय गलती से बंद किया जा सकता है, जिसका अर्थ है आपके संचार का कट जाना।
अब जब आप एक नया प्रोसेस बनाने के पीछे के कारणों को समझ गए हैं, मैं समझा सकता हूँ कि मैं किसी लक्ष्य के साथ संचार करने के लिए (उसे कनेक्ट किए बिना) पहले से मौजूद सॉकेट (जो शायद कनेक्टेड हो) का उपयोग कैसे कर सकता हूँ।
इसके अलावा, आप पढ़ सकते हैं कि उन्होंने यह भी लिखा है "... भले ही कनेक्शनलेस सॉकेट पहले किसी विशिष्ट पते से कनेक्ट किया गया हो, to पैरामीटर गंतव्य पते को ओवरराइड करता है ..." जिसका अर्थ है, हम sendto के साथ लक्ष्य को ओवरराइड कर सकते हैं।