Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
wave-share — सर्वररहित, पीयर-टू-पीयर, ध्वनि के माध्यम से स्थानीय फ़ाइल साझाकरण | Kitploit
उपकरण/GitHubGitHub/ggerganov/wave-share
डेटा निष्कासनवायरलेस सुरक्षाउपयोगिताएँ और फ्रेमवर्कलर्निंग और शिक्षा
GitHubggerganov/wave-share

wave-share

सर्वररहित, पीयर-टू-पीयर, ध्वनि के माध्यम से स्थानीय फ़ाइल साझाकरण

रिपॉजिटरी देखेंवेबसाइट
2.3k14835 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

wave-share

WebRTC सिग्नलिंग के लिए ध्वनि का उपयोग करने वाला एक अवधारणा प्रमाण। यह माइक्रोफोन और स्पीकर वाले सभी उपकरणों पर काम करता है। ब्राउज़र में चलता है।

पास के उपकरण ऑडियो टोन के एक अनुक्रम के माध्यम से आवश्यक सत्र विवरण प्रोटोकॉल (SDP) डेटा का आदान-प्रदान करके WebRTC कनेक्शन के लिए बातचीत करते हैं। सफल वार्ता पर, ब्राउज़रों के बीच एक स्थानीय WebRTC कनेक्शन स्थापित होता है जो LAN के माध्यम से डेटा के आदान-प्रदान की अनुमति देता है।

इसे क्रियाशील देखें (2 मिनट का वीडियो):

ध्वनि पर CG++ डेटा

इसे स्वयं आज़माएं: ggerganov.github.io/wave-share

नवीनतम समाचार:
मैंने डेटा-ओवर-साउंड एल्गोरिदम को ggwave नामक एक स्टैंडअलोन लाइब्रेरी में निकाल लिया है।
इसे आसानी से अन्य परियोजनाओं में एम्बेड किया जा सकता है।

यह कैसे काम करता है

WebRTC तकनीक विभिन्न उपकरणों पर चलने वाले दो ब्राउज़रों को एक-दूसरे से जुड़ने और डेटा का आदान-प्रदान करने की अनुमति देती है। प्लगइन्स स्थापित करने या एप्लिकेशन डाउनलोड करने की कोई आवश्यकता नहीं है। कनेक्शन शुरू करने के लिए, पीयर संपर्क जानकारी (आईपी पता, नेटवर्क पोर्ट, सत्र आईडी, आदि) का आदान-प्रदान करते हैं। इस प्रक्रिया को "सिग्नलिंग" कहा जाता है। WebRTC विनिर्देश सिग्नलिंग के लिए कोई मानक परिभाषित नहीं करता है - संपर्क आदान-प्रदान किसी भी प्रोटोकॉल या तकनीक द्वारा प्राप्त किया जा सकता है।

इस परियोजना में सिग्नलिंग ध्वनि के माध्यम से की जाती है। सिग्नलिंग अनुक्रम इस प्रकार है:

  • पीयर A, सत्र डेटा को ऑडियो टोन में एन्कोड करके WebRTC कनेक्शन के लिए एक प्रस्ताव प्रसारित करता है
  • पास के पीयर, पीयर A द्वारा उत्सर्जित ध्वनि को कैप्चर करते हैं और WebRTC सत्र डेटा को डिकोड करते हैं
  • पीयर B, जो पीयर A के साथ कनेक्शन स्थापित करना चाहता है, एक ऑडियो उत्तर के साथ प्रतिक्रिया देता है। उत्तर में पीयर B की संपर्क जानकारी एन्कोडेड होती है। इसके अतिरिक्त, पीयर B पीयर A से कनेक्ट करने का प्रयास करना शुरू करता है
  • पीयर A पीयर B से उत्तर प्राप्त करता है, प्रेषित संपर्क डेटा को डिकोड करता है और पीयर B को कनेक्ट करने की अनुमति देता है
  • कनेक्शन स्थापित होता है

वर्णित सिग्नलिंग अनुक्रम में सिग्नलिंग सर्वर शामिल नहीं है। इसलिए, ध्वनि के माध्यम से सिग्नलिंग का उपयोग करने वाला एक एप्लिकेशन, उदाहरण के लिए, एक स्थिर वेब पेज द्वारा प्रदान किया जा सकता है। एकमात्र आवश्यकता ऑडियो आउटपुट/कैप्चर उपकरणों पर नियंत्रण रखना है।

वर्तमान दृष्टिकोण की एक स्पष्ट सीमा (विशेषता) यह है कि केवल पास के उपकरण (जैसे एक ही कमरे में) एक-दूसरे के साथ कनेक्शन स्थापित कर सकते हैं। इसके अलावा, उपकरणों को एक ही स्थानीय नेटवर्क से जुड़ा होना चाहिए, क्योंकि NAT उपलब्ध नहीं है।

Sound Tx/Rx

ध्वनि के माध्यम से संचारित डेटा में WebRTC कनेक्शन को आरंभ करने के लिए आवश्यक संपर्क जानकारी होती है। यह डेटा सत्र विवरण प्रोटोकॉल (SDP) प्रारूप में संग्रहीत किया जाता है। चूंकि डेटा-ओवर-साउंड की बैंडविड्थ और मजबूती के मामले में महत्वपूर्ण सीमाएं हैं, इसलिए जितना संभव हो उतना कम डेटा संचारित करना वांछनीय है। इसलिए, SDP से सभी अप्रासंगिक जानकारी हटा दी जाती है और केवल कनेक्शन स्थापित करने के लिए आवश्यक आवश्यक डेटा ही प्रेषित किया जाता है। वर्तमान में, न्यूनतम आवश्यक SDP डेटा वाले ध्वनि पैकेट का निम्नलिखित प्रारूप है:

ऑडियो पैकेट का कुल आकार 112 बाइट्स है। वर्तमान ऑडियो एन्कोडिंग एल्गोरिदम के साथ, SDP पैकेट को 5-10 सेकंड में प्रेषित किया जा सकता है (उपयोग किए गए Tx प्रोटोकॉल पर निर्भर करता है)। धीमे प्रोटोकॉल का उपयोग करना शोर वाले वातावरण में या यदि संचार करने वाले उपकरण एक-दूसरे से दूर हैं तो अधिक विश्वसनीय संचरण प्रदान करता है।

डेटा-से-ध्वनि एन्कोडिंग

वर्तमान दृष्टिकोण एक बहु-आवृत्ति फ़्रीक्वेंसी-शिफ्ट कीइंग (FSK) मॉड्यूलेशन योजना का उपयोग करता है। प्रेषित किए जाने वाले डेटा को पहले 4-बिट के टुकड़ों में विभाजित किया जाता है। समय के प्रत्येक क्षण में, 3 बाइट्स को 6 टोन का उपयोग करके प्रेषित किया जाता है - प्रत्येक 4-बिट टुकड़े के लिए एक टोन। ये 6 टोन 4.5kHz रेंज में उत्सर्जित होते हैं जो 96 समान रूप से दूरी वाली आवृत्तियों में विभाजित है:

सभी प्रोटोकॉल के लिए: dF = 46.875 Hz। गैर-अल्ट्रासोनिक प्रोटोकॉल के लिए: F0 = 1875.000 Hz। अल्ट्रासोनिक प्रोटोकॉल के लिए: F0 = 15000.000 Hz।

स्थानीय IP पता प्राप्त करना

सुविधा के लिए, आपकी मशीन का स्थानीय IP पता स्वचालित रूप से पता लगाने के लिए एक सरल WebRTC हैक का उपयोग किया जाता है, ताकि आपको इसे मैन्युअल रूप से प्रदान न करना पड़े। हालांकि, नवीनतम WebRTC विनिर्देश सुरक्षा कारणों से ऐसा होने से रोकता है, इसलिए किसी बिंदु पर यह "सुविधा" सभी ब्राउज़रों में काम करना बंद कर देगी। उदाहरण के लिए, यह अब Safari पर काम नहीं करता है।

निर्माण

Web Assembly मॉड्यूल wave.wasm

आपको एक Emscripten कंपाइलर की आवश्यकता होगी। compile.sh स्क्रिप्ट चलाएं।

CLI टूल wave-share


महत्वपूर्ण: यह CLI टूल अब स्टैंडअलोन लाइब्रेरी ggwave का प्रोटोटाइप था। इसे जरूर देखें, क्योंकि इसमें इस डेटा-ओवर-साउंड प्रकार के संचार के अनुप्रयोग के लिए अधिक अद्यतन उदाहरण हैं।


यह एक सरल उपकरण है जो समझाए गए wave-share ध्वनि tx/rx प्रोटोकॉल का उपयोग करके डेटा प्राप्त और भेजता है। मानक इनपुट पर कुछ टेक्स्ट टाइप करें और संचारित करने के लिए Enter दबाएं।

root@kitploit:~
# build
git clone https://github.com/ggerganov/wave-share
cd wave-share && mkdir build && cd build
cmake ..
make

# running
./wave-share

यहाँ CLI टूल का उपयोग करने का तरीका दर्शाने वाला एक छोटा वीडियो है:

Wave-share: कमांड लाइन टूल

ज्ञात समस्याएं / सुधारने योग्य चीजें

  • काम नहीं करता है: IE, IE Edge, iOS पर Chrome/Firefox, macOS पर Safari
  • अल्ट्रासोनिक ध्वनि संचरण अधिकांश उपकरणों पर काम नहीं करता है। संभवतः हार्डवेयर सीमाएं?
  • एकाधिक स्थानीय नेटवर्कों की उपस्थिति में, वर्तमान में यह चुनने का विकल्प नहीं है कि किसका उपयोग करना है। हमेशा पहले का उपयोग किया जाता है
  • संचरण के दौरान कभी-कभी ध्वनि में कर्कशता होती है। Tx कोड को अनुकूलित करने की आवश्यकता है
  • emscripten द्वारा उत्पन्न .js का आकार बहुत बड़ा है (~1MB)। शुद्ध JS में पुनर्लेखन करें?
  • मोबाइल पर, Firefox का उपयोग करते हुए, टैब बंद करने के बाद भी पेज पृष्ठभूमि में चलता रह सकता है
टूल डाउनलोड करें
आकार, [B]विवरण
1SDP का प्रकार - प्रस्ताव या उत्तर
1पैकेट का आकार बाइट्स में (ECC बाइट्स को शामिल नहीं करते हुए)
4प्रेषित करने वाले पीयर का IP पता
2नेटवर्क पोर्ट जो संचार के लिए उपयोग किया जाएगा
32सत्र डेटा की SHA-256 फिंगरप्रिंट
40ICE क्रेडेंशियल्स - 16 बाइट्स उपयोगकर्ता नाम + 24 बाइट्स पासवर्ड
32Tx के दौरान त्रुटियों को सुधारने के लिए उपयोग किए जाने वाले ECC सुधार बाइट्स
आवृत्ति, [Hz]मान, [bits]आवृत्ति, [Hz]मान, [bits]...आवृत्ति, [Hz]मान, [bits]
F0 + 00*dFचंक 0: 0000F0 + 16*dFचंक 1: 0000...F0 + 80*dFचंक 5: 0000
F0 + 01*dFचंक 0: 0001F0 + 17*dFचंक 1: 0001...F0 + 81*dFचंक 5: 0001
F0 + 02*dFचंक 0: 0010F0 + 18*dFचंक 1: 0010...F0 + 82*dFचंक 5: 0010
.....................
F0 + 14*dFचंक 0: 1110F0 + 30*dFचंक 1: 1110...F0 + 94*dFचंक 5: 1110
F0 + 15*dFचंक 0: 1111F0 + 31*dFचंक 1: 1111...F0 + 95*dFचंक 5: 1111