Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
wave-share — مشاركة الملفات المحلية من نظير إلى نظير بدون خادم عبر الصوت | Kitploit
أدوات/GitHubGitHub/ggerganov/wave-share
تسريب البياناتأمن الشبكات اللاسلكيةالأدوات والمكوناتالتعلم والتعليم
GitHubggerganov/wave-share

wave-share

مشاركة الملفات المحلية من نظير إلى نظير بدون خادم عبر الصوت

عرض المستودعالموقع الإلكتروني
2.3k148منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

wave-share

إثبات مفهوم للإشارة عبر WebRTC باستخدام الصوت. يعمل مع جميع الأجهزة التي تحتوي على ميكروفون ومكبرات صوت. يعمل في المتصفح.

تتفاوض الأجهزة القريبة على اتصال WebRTC عن طريق تبادل بيانات بروتوكول وصف الجلسة (SDP) الضرورية عبر سلسلة من النغمات الصوتية. بعد نجاح التفاوض، يتم إنشاء اتصال WebRTC محلي بين المتصفحات مما يسمح بتبادل البيانات عبر الشبكة المحلية (LAN).

شاهده أثناء العمل (فيديو مدته دقيقتان):

بيانات CG++ عبر الصوت

جرّبها بنفسك: ggerganov.github.io/wave-share

آخر الأخبار:
لقد قمت باستخراج خوارزمية نقل البيانات عبر الصوت إلى مكتبة مستقلة تُسمى ggwave.
يمكن تضمينها بسهولة في مشاريع أخرى.

كيف يعمل

تتيح تقنية WebRTC لمتصفحين يعملان على أجهزة مختلفة الاتصال ببعضهما البعض وتبادل البيانات. ليست هناك حاجة لتثبيت إضافات أو تنزيل تطبيقات. لبدء الاتصال، يتبادل الأقران معلومات الاتصال (عنوان IP، منافذ الشبكة، معرف الجلسة، إلخ). تُسمى هذه العملية "الإشارة" (signaling). لا يحدد مواصفات WebRTC أي معيار للإشارة - يمكن تحقيق تبادل الاتصال بأي بروتوكول أو تقنية.

في هذا المشروع، يتم تنفيذ الإشارة عبر الصوت. يبدو تسلسل الإشارة كالتالي:

  • يبث النظير A عرضًا لاتصال WebRTC عن طريق تشفير بيانات الجلسة إلى نغمات صوتية
  • تلتقط الأجهزة القريبة الصوت المنبعث من النظير A وتفك تشفير بيانات جلسة WebRTC
  • النظير B، الذي يريد إنشاء اتصال مع النظير A، يرد بإجابة صوتية. تحتوي الإجابة على معلومات الاتصال الخاصة بالنظير B مشفرة. بالإضافة إلى ذلك، يبدأ النظير B في محاولة الاتصال بالنظير A
  • يتلقى النظير A الإجابة من النظير B، ويفك تشفير بيانات الاتصال المرسلة ويسمح للنظير B بالاتصال
  • يتم إنشاء الاتصال

تسلسل الإشارة الموصوف لا يتضمن خادم إشارة. لذلك، يمكن تقديم تطبيق يستخدم الإشارة عبر الصوت، على سبيل المثال، عبر صفحة ويب ثابتة. الشرط الوحيد هو التحكم في أجهزة إخراج/التقاط الصوت.

من القيود الواضحة (ميزة) للنهج الحالي أن الأجهزة القريبة فقط (مثل الموجودة في نفس الغرفة) يمكنها إنشاء اتصال مع بعضها البعض. علاوة على ذلك، يجب أن تكون الأجهزة متصلة بنفس الشبكة المحلية، لأن NAT غير متاح.

إرسال/استقبال الصوت

البيانات المنقولة عبر الصوت تحتوي على معلومات الاتصال المطلوبة لتهيئة اتصال WebRTC. يتم تخزين هذه البيانات بتنسيق بروتوكول وصف الجلسة (SDP). نظرًا لأن نقل البيانات عبر الصوت له قيود كبيرة من حيث عرض النطاق الترددي والمتانة، فمن المستحسن نقل أقل قدر ممكن من البيانات. لذلك، يتم تجريد SDP من جميع المعلومات غير ذات الصلة ولا يتم نقل سوى البيانات الأساسية اللازمة لإنشاء الاتصال. حاليًا، تحتوي حزمة الصوت التي تحتوي على الحد الأدنى من بيانات SDP المطلوبة على التنسيق التالي:

الحجم الإجمالي للحزمة الصوتية هو 112 بايت. باستخدام خوارزمية تشفير الصوت الحالية، يمكن إرسال حزمة SDP في 5-10 ثوانٍ (اعتمادًا على بروتوكول الإرسال المستخدم). استخدام بروتوكولات أبطأ يوفر نقلًا أكثر موثوقية في البيئات المزعجة أو إذا كانت الأجهزة المتصلة بعيدة عن بعضها البعض.

تشفير البيانات إلى صوت

يستخدم النهج الحالي مخطط تعديل مفتاح تحويل التردد (FSK) متعدد الترددات. يتم أولاً تقسيم البيانات المراد إرسالها إلى أجزاء 4 بت. في كل لحظة زمنية، يتم إرسال 3 بايت باستخدام 6 نغمات - نغمة واحدة لكل جزء 4 بت. تنبعث النغمات الست في نطاق 4.5 كيلوهرتز مقسم إلى 96 ترددًا متباعدة بشكل متساوٍ:

لجميع البروتوكولات: dF = 46.875 هرتز. للبروتوكولات غير فوق الصوتية: F0 = 1875.000 هرتز. للبروتوكولات فوق الصوتية: F0 = 15000.000 هرتز.

الحصول على عنوان IP المحلي

للتسهيل، يتم استخدام اختراق WebRTC بسيط للكشف تلقائيًا عن عنوان IP المحلي لجهازك، حتى لا تضطر إلى توفيره يدويًا. ومع ذلك، يمنع أحدث مواصفات WebRTC هذا الأمر لأسباب أمنية، لذا في مرحلة ما ستتوقف هذه "الميزة" عن العمل في جميع المتصفحات. على سبيل المثال، لم تعد تعمل على Safari.

بناء

وحدة Web Assembly wave.wasm

ستحتاج إلى مترجم Emscripten. قم بتشغيل النص البرمجي compile.sh.

أداة سطر الأوامر wave-share


هام: كانت أداة سطر الأوامر هذه نموذجًا أوليًا للمكتبة المستقلة الآن ggwave. تأكد من الاطلاع عليها، حيث تحتوي على أمثلة أكثر حداثة لتطبيق هذا النوع من الاتصال عبر الصوت.


هذه أداة بسيطة تستقبل وترسل البيانات باستخدام بروتوكول إرسال/استقبال الصوت wave-share الموضح. اكتب بعض النصوص في الإدخال القياسي واضغط Enter للإرسال.

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

# running
./wave-share

إليك فيديو قصير يوضح كيفية استخدام أداة سطر الأوامر:

Wave-share: أداة سطر الأوامر

مشكلات معروفة / أشياء لتحسينها

  • لا يعمل مع: IE, IE Edge, Chrome/Firefox على iOS, Safari على macOS
  • لا يعمل نقل الصوت فوق الصوتي على معظم الأجهزة. ربما قيود الأجهزة؟
  • في وجود شبكات محلية متعددة، لا يمكن حاليًا تحديد أي منها سيستخدم. دائمًا ما يستخدم الأول
  • هناك أحيانًا تشويش في الصوت أثناء الإرسال. تحتاج إلى تحسين كود الإرسال
  • حجم ملف .js الناتج عن emscripten كبير جدًا (~1MB). إعادة كتابته بلغة JS خالصة؟
  • على الجوال، عند استخدام Firefox، قد تبقى الصفحة قيد التشغيل في الخلفية حتى بعد إغلاق التبويب
تنزيل الأداة
Size, [B]الوصف
1نوع SDP - عرض أو إجابة
1حجم الحزمة بالبايت (بدون تضمين بايتات ECC)
4عنوان IP للنظير المرسل
2منفذ الشبكة الذي سيُستخدم للاتصال
32بصمة SHA-256 لبيانات الجلسة
40بيانات اعتماد ICE - اسم مستخدم 16 بايت + كلمة مرور 24 بايت
32بايتات تصحيح ECC المستخدمة لتصحيح الأخطاء أثناء الإرسال
التردد، [هرتز]القيمة، [بت]التردد، [هرتز]القيمة، [بت]...التردد، [هرتز]القيمة، [بت]
F0 + 00*dFChunk 0: 0000F0 + 16*dFChunk 1: 0000...F0 + 80*dFChunk 5: 0000
F0 + 01*dFChunk 0: 0001F0 + 17*dFChunk 1: 0001...F0 + 81*dFChunk 5: 0001
F0 + 02*dFChunk 0: 0010F0 + 18*dFChunk 1: 0010...F0 + 82*dFChunk 5: 0010
.....................
F0 + 14*dFChunk 0: 1110F0 + 30*dFChunk 1: 1110...F0 + 94*dFChunk 5: 1110
F0 + 15*dFChunk 0: 1111F0 + 31*dFChunk 1: 1111...F0 + 95*dFChunk 5: 1111