Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
AudioServer-Voip-Recorder — 🔬 أداة بحث متقدمة لنظام أندرويد لالتقاط صوت VoIP في الوقت الفعلي (Uplink/Downlink) عبر الربط الديناميكي بمكتبة libaudioflinger.so. تم اختبارها وبناؤها على واتساب وسيجنال وتيليجرام على أندرويد 14. | Kitploit
أدوات/GitHubGitHub/nighthawkk/audioserver-voip-recorder
أمان أندرويدالهندسة العكسيةأمن الجوال
GitHubnighthawkk/audioserver-voip-recorder

AudioServer-Voip-Recorder

🔬 أداة بحث متقدمة لنظام أندرويد لالتقاط صوت VoIP في الوقت الفعلي (Uplink/Downlink) عبر الربط الديناميكي بمكتبة libaudioflinger.so. تم اختبارها وبناؤها على واتساب وسيجنال وتيليجرام على أندرويد 14.

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
3199منذ شهر واحدلم تتم المراجعة بعد

الهدف: توضيح التقاط تدفق VoIP عبر خطاف (hook) في audioserver بنظام أندرويد (وتحديدًا libaudioflinger.so) وتسجيل مخازن PCM للرابط الصاعد (الميكروفون) والرابط الهابط (مكبر الصوت) عندما يكون النظام في وضع الاتصال.

تصميم المشروع والمنهجية

البنية المعمارية:

  • تطبيق التحكم (أندرويد)
    واجهة مستخدم تحتوي على 9 أزرار لإدارة إعداد سياسات SELinux، وحقن الحمولة، ونقل البيانات، والتشغيل.

  • الحمولة (libaudiohook.so)
    مكتبة مشتركة بلغة C++ (تُبنى كجزء من مشروع التطبيق) تقوم بعمل خطاف للطرق الداخلية في AudioFlinger باستخدام Dobby وتكتب مخازن PCM الخام إلى مجلد الجلسة.

  • المعالجة اللاحقة
    أداة إضافية، tools/audioparser.py، تحوّل ملفات .ac (رابط هابط) / .bc (رابط صاعد) الخام إلى WAV. ويمكن لمدير الملفات في التطبيق أيضًا التحويل والتشغيل داخل التطبيق.

  • أدوات بحثية
    سكربتات Frida لتتبع الدوال واكتشاف الإزاحات مبدئيًا؛ وملفات تحليل للرموز/الإزاحات ومقاطع أخرى.

تطبيق التحكم

يوفّر تطبيق أندرويد هذا واجهة رسومية لإدارة تسجيل VoIP عبر audioserver. ويتكامل مع حمولة أصلية تعمل كخطاف في مكدس الصوت بنظام أندرويد لالتقاط صوت الميكروفون ومكبر الصوت من تطبيقات VoIP.

يعمل التطبيق كمركز تحكم، إذ يتيح لك حقن سياسات SELinux المطلوبة، وبدء/إيقاف المراقبة، وإدارة البيانات المسجلة، وتشغيل ملفات صوت VoIP الملتقطة.

الميزات

يحتوي النشاط الرئيسي على 9 أزرار تحكم:

  1. حقن السياسات
    يحقن سياسات SELinux المطلوبة لكي يعمل audioserver وهذا التطبيق معًا.

  2. بدء المراقبة
    يحقن الحمولة (المكتبة المشتركة) في audioserver، ما يتيح التقاط صوت VoIP عبر خطاف في RecordTrack وPlaybackTrack. يستخدم AndKittyInjector لحقن العمليات.

  3. إيقاف المراقبة
    يعيد تشغيل عملية audioserver، فيوقف المراقبة ويزيل الخطافات المحقونة.

  4. نسخ البيانات
    ينسخ صوت PCM الخام الملتقط من المجلد المؤقت /data/local/tmp/voip إلى /sdcard/voip.

    • ينظّف المجلد المؤقت بعد ذلك.
  5. عرض السجلات
    يعرض السجلات المتعلقة بالحقن والخطاف وحالة التسجيل.

  6. تفعيل SELinux
    يستعيد وضعَ الإلزام (enforcing) في SELinux.

  7. تعطيل SELinux
    يضبط SELinux على الوضع المتساهل (permissive). استخدمه عند فشل السياسات المحقونة.

  8. تشغيل الصوتيات
    يفتح مدير ملفات VoIP المخصص (/sdcard/voip/):

    • يحوّل ملفات PCM الخام إلى صيغة WAV في الذاكرة.
    • يشغّل الصوت المحوّل مباشرة داخل التطبيق.
  9. حذف البيانات
    يحذف جميع البيانات الصوتية من /data/local/tmp/voip و/sdcard/voip معًا. ملاحظة: بعد حذف البيانات، نحتاج إلى إعادة الحقن في audioserver حتى يتم إنشاء المجلد لحفظ البيانات.

+----------------------+    
|                      |    
|   App MainActivity   |    
|                      |    
|                      |    
|(9 Control Buttons UI)|    
|                      |    
|                      |    
+----------+-----------+    
           |                
           |                
           |                
+----------v-----------+    
|                      |    
|       JNI Layer      |    
|                      |    
| Selinux, Process Inje|    
| ction,               |    
|                      |    
|                      |    
+----------------------+    

حمولة الخطاف

تُحقن هذه المكتبة المشتركة في audioserver لكشف AUDIO_MODE_IN_COMMUNICATION والتقاط تدفقات صوت VoIP مباشرةً من مكدس الصوت في أندرويد لمجموعة محددة مسبقًا من أسماء الحزم.

يستخدم إطار عمل الخطاف المضمّن Dobby لاعتراض طرق حرجة داخل libaudioflinger.so.
يتم التقاط كل من تدفقي الصوت الرابط الصاعد (الميكروفون) والرابط الهابط (مكبر الصوت) وكتابتهما في ملفات الجلسة لمعالجتها لاحقًا.

نقاط الخطاف

تثبّت المكتبة خطافات على الدوال التالية داخل AudioFlinger والطبقات ذات الصلة:

FunctionPurpose
AudioFlinger::setModeيتتبع الانتقال إلى/من وضع IN_COMMUNICATION (نشاط VoIP).
RecordTrack::getNextBufferيلتقط إطارات صوت الميكروفون (الرابط الصاعد).
PlaybackThread::Track::getNextBufferيلتقط إطارات صوت مكبر الصوت (الرابط الهابط).
Track::stopيغلق ملف الرابط الهابط وينهيه.
RecordTrack::stopيغلق ملف الرابط الصاعد وينهيه.

التطبيقات المستهدفة

تفلتر المكتبة التدفقات بناءً على تعيين UID إلى الحزمة.

التطبيقات المراقبة حاليًا:

  • com.whatsapp
  • com.whatsapp.w4b (واتساب للأعمال)
  • org.thoughtcrime.securesms (Signal)
  • org.telegram.messenger
  • org.telegram.messenger.web

يمكنك إضافة تطبيقات أخرى أيضًا داخل audioserver_hook.cpp:

static const char* kTargetPackages[] = {  
    "com.whatsapp",  
    "com.whatsapp.w4b",  
    "org.thoughtcrime.securesms",  
    "org.telegram.messenger",  
    "org.telegram.messenger.web"  
};

مخرجات الملفات

  • يتم إنشاء مجلد جلسة عند الحقن في audioserver تحت المسار: /data/local/tmp/voip/audioserver_session_<timestamp>/

  • تُنشأ الملفات أولاً بامتداد .tmp، ثم يُعاد تسميتها عند إيقاف المسار:

    • الرابط الصاعد (ميكروفون) → <packageName>_<sampleRate>_<timestamp>.bc
    • الرابط الهابط (مكبر الصوت) → <packageName>_<sampleRate>_<timestamp>.ac
  • مثال على جلسة:

	/data/local/tmp/voip/audioserver_session_1725389200/
	├── com.whatsapp_48000_1725389201_123456.ac
	├── com.whatsapp_48000_1725389201_123789.bc
	

الإزاحات

بما أن المكتبة المستهدفة مجرّدة (stripped) والطرق غير مُصدَّرة في libaudioflinger.so، نحتاج إلى إزاحات دقيقة للطرق والمكوّنات الأخرى ذات الصلة لنجاح عملية الخطاف.

يمكننا استخراج هذه الإزاحات من التحليل الساكن باستخدام IDA-PRO أو من التحليل الديناميكي باستخدام frida. وبمجرد معرفة الإزاحات يمكننا استبدالها داخل ملف الترويسة offsets.h.

الإزاحات المطلوبة:
الطرق:
  1. AUDIOFLINGER_SETMODE_OFFSET
    • الطريقة: android::AudioFlinger::setMode(audio_mode_t)
    • الاسم المشوّه (Mangled name): _ZN7android12AudioFlinger7setModeE11audio_mode_t
  2. RECORDTRACK_GETNEXTBUFFER_OFFSET
    • الطريقة: android::AudioFlinger::RecordThread::RecordTrack::getNextBuffer(android::AudioBufferProvider::Buffer *)
    • الاسم المشوّه (Mangled name): _ZN7android12AudioFlinger12RecordThread11RecordTrack13getNextBufferEPNS_19AudioBufferProvider6BufferE
  3. TRACK_GETNEXTBUFFER_OFFSET
    • الطريقة: android::AudioFlinger::PlaybackThread::Track::getNextBuffer(android::AudioBufferProvider::Buffer *)
    • الاسم المشوّه (Mangled name): _ZN7android12AudioFlinger14PlaybackThread5Track13getNextBufferEPNS_19AudioBufferProvider6BufferE
  4. TRACK_STOP_OFFSET
    • الطريقة: android::AudioFlinger::PlaybackThread::Track::stop(void)
    • الاسم المشوّه (Mangled name): _ZN7android12AudioFlinger14PlaybackThread5Track4stopEv
  5. RECORDTRACK_STOP_OFFSET
    • الطريقة: android::AudioFlinger::RecordThread::RecordTrack::stop(void)
    • الاسم المشوّه (Mangled name): _ZN7android12AudioFlinger12RecordThread11RecordTrack4stopEv
إزاحات أخرى:
  1. SAMPLERATE_OFFSET
  2. UID_OFFSET
  3. ISOUT_OFFSET
  4. FORMAT_OFFSET
  5. CHANNELMASK_OFFSET
  6. ATTR_OFFSET

يمكن الحصول عليها من التحليل الساكن.

  • المكتبة - libaudioflinger.so
  • الطريقة - android::AudioFlinger::ThreadBase::TrackBase::TrackBase
تنزيل الأداة