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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dockerized-android — إطار عمل قائم على الحاويات لتمكين دمج المكونات المحمولة في منصات التدريب الأمني | Kitploit
أدوات/GitHubGitHub/cybersecsi/dockerized-android
أمان أندرويدأمن الحاوياتأمن الجوالالتعلم والتعليممختبرات وتدريب عملي
GitHubcybersecsi/dockerized-android

dockerized-android

إطار عمل قائم على الحاويات لتمكين دمج المكونات المحمولة في منصات التدريب الأمني

عرض المستودع
18725منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Dockerized Android

Dockerized Android هو إطار عمل قائم على الحاويات يسمح بتشغيل محاكي Android داخل Docker والتحكم به عبر متصفح. تم تطوير هذا المشروع لتوفير نقطة انطلاق لدمج مكونات الأمان المحمولة في ساحات التدريب السيبرانية (Cyber Ranges)، لكن يمكن استخدامه لأي غرض. على أي حال، لأغراض التطوير والاختبار، يُقترح المشروع docker-android.

Docker Maintenance Documentation License: MIT

جدول المحتويات

  • جدول المحتويات
  • مقدمة
  • الميزات
  • الهندسة المعمارية
    • المكون الأساسي
    • مكون واجهة المستخدم
    • مكون مدير الحالات
  • قائمة صور Docker
  • كيفية التشغيل
    • المتطلبات الأساسية
    • توافق نظام التشغيل
    • حل بديل لنظام OS X للجهاز الحقيقي
    • التشغيل
    • البناء
  • الإعدادات
  • الترخيص
  • من يتحدث عن Dockerized Android
  • الإسناد

مقدمة

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

الميزات

الميزات التالية متاحة حاليًا:

  • تشغيل محاكي Android في Docker
  • التحكم بالجهاز عبر متصفح الويب
  • تثبيت التطبيقات
  • تفعيل إعادة توجيه المنافذ
  • إعادة تشغيل الجهاز
  • محاكاة SMS
  • استخدام الطرفية من متصفح الويب
  • إرفاق جهاز فعلي أيضًا
  • تخصيص سلوك بدء التشغيل (راجع قسم الإعدادات)
  • إدارة سهلة لحالات متعددة
الإعداد الأوليإعداد مدير الحالاتالإعداد اليدوي
initial-setupinstance-manager-setupmanual-setup
ميزات الأدواتتبديل الحالات
toolboxinstance-switch

الهندسة المعمارية

يتكون المشروع من ثلاثة أجزاء رئيسية:

  • Core (أساسي) لـ Dockerized Android
  • UI (واجهة مستخدم) لـ Dockerized Android
  • Instance Manager (مدير الحالات) لـ Dockerized Android (اختياري) يوفر الشكل التالي نظرة عامة على الهندسة الفعلية للمكونين الإجباريين

المكون الأساسي (Core)

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

  • أساسي للمحاكي
  • أساسي للجهاز الحقيقي

الفرق المعماري الرئيسي يتعلق بالعمليات طويلة العمر: المكون الأساسي للمحاكي يشغل عملية emulator طويلة العمر بينما المكون الأساسي للجهاز الحقيقي يشغل عملية scrcpy طويلة العمر لعرض الجهاز الفعلي والتحكم به. الأجزاء الأخرى متشابهة إلى حد كبير مع بعض المنطق لاتباع سلوك مختلف بناءً على نوع المكون الأساسي.

مكون واجهة المستخدم (UI)

يوفر مكون واجهة المستخدم طريقة بسيطة لاستخدام جميع الميزات التي يوفرها الخلفية (backend) ويضيف أيضًا القدرة على عرض الجهاز والتحكم به. يجب على المستخدم إدخال عنوان المكون الأساسي والمنافذ المقابلة (المنفذ الذي توفره الخلفية والمنفذ الذي يوفره websockify) يدويًا؛ من خلال هذا الإعداد اليدوي يمكن تغيير المنافذ الافتراضية (وهي 4242 للخلفية و 6080 لـ websockify).

مكون مدير الحالات (Instance Manager)

مكون مدير الحالات لديه مهمة توفير جميع المعلومات (أي العناوين والمنافذ) حول المكونات الأساسية قيد التشغيل عبر REST API واحد. يتم ذلك عن طريق كتابة ملف تكوين JSON بسيط يحتوي على جميع المعلومات حول المكونات الأساسية الموجودة في docker-compose لتجنب العمل الشاق لإضافة كل منها يدويًا. هيكل ملف تكوين JSON هو التالي:

root@kitploit:~
{
    "instances": [
        {
            "name": [سلسلة نصية عامة لتعريف الجهاز],
            "address": [عنوان المكون],
            "core_port": [منفذ الخلفية],
            "vnc_port": [منفذ VNC]
        }
    ]
}

قائمة صور Docker

الصورة secsi/dockerized-android-core-bare لا تقوم بتنزيل أي صورة نظام، ويمكنك تثبيت المجلد على جهاز المضيف حيث لديك جميع مجلدات SDK

كيفية التشغيل

لمشاهدة مثال كامل على كيفية تشغيل المنصة، يمكنك الاطلاع على docker-compose المتاح في دليل examples. يحتوي هذا الدليل على ثلاثة تكوينات مختلفة:

  • docker-compose-core: إعداد مع مكون أساسي لجهاز حقيقي؛
  • docker-compose-emulator: إعداد مع مكون أساسي لمحاكي؛
  • docker-compose-instance-manager: إعداد مع مكونين أساسيين مختلفين ومكون مدير الحالات الاختياري.

بمجرد فهم كيفية عمله، يمكنك تغييره لتلبية أي احتياجات لديك.

المتطلبات الأساسية

يجب تثبيت Docker و Docker Compose على جهازك.

توافق نظام التشغيل

تتصرف هذه المنصة بطرق مختلفة بناءً على نظام تشغيل المضيف، إليك جدول يلخص التوافق الحالي:

LinuxWindowsOS X
أساسي للمحاكيتوافق كاملغير مدعوم (حتى الآن)غير مدعوم
أساسي للجهاز الحقيقيتوافق كاملتوافق كاملحل بديل

بالنسبة لـ Windows و OS X، يجب استخدام VM Linux مع المحاكاة الافتراضية المتداخلة.

للتحقق مما إذا كان جهاز Linux الخاص بك يدعم المحاكاة الافتراضية المتداخلة، يمكنك تشغيل الأوامر التالية:

root@kitploit:~
sudo apt install cpu-checker
kvm-ok

حل بديل لنظام OS X للجهاز الحقيقي

لاستخدام المكون الأساسي للجهاز الحقيقي على OS X، يمكنك:

  • استخدام adb الخاص بالمضيف
  • استخدام الاتصال اللاسلكي

بالنسبة للاتصال اللاسلكي، توفر Google دليلاً بسيطًا tutorial. للاتصال بـ adb الخاص بالمضيف من داخل الحاوية، يجب عليك الدخول يدويًا إلى الحاوية وتشغيل:

root@kitploit:~
adb -H host.docker.internal devices

التشغيل

الأوامر لبدء استخدام الإطار هي كالتالي:

  1. أولاً، اختر تكوينًا موجودًا في مجلد الأمثلة. على سبيل المثال:
root@kitploit:~
cp ./examples/docker-compose-core.yml docker-compose.yml
  1. قم بتشغيله مع docker-compose:
root@kitploit:~
docker-compose up

بشكل أبسط، يمكنك أيضًا استخدام الأمر:

docker-compose -f ./examples/docker-compose-core.yml up

كل ما تبقى هو التنقل عبر متصفح إلى العنوان التالي http://127.0.0.1:8080 وتعيين التكوين الحالي:

إذا لم يتم استخدام مدير الحالات، انقر على الإعداد اليدوي وأدخل المعلومات التالية:

  1. اسم من اختيارك للحالة؛
  2. عنوان IP للمكون الأساسي المُعلن في docker-compose؛
  3. رقم منفذ المكون الأساسي (4242 افتراضيًا)؛
  4. رقم منفذ VNC (6080 افتراضيًا).

إذا تم استخدام مدير الحالات، انقر على "Instance Manager" وأدخل فقط عنوان IP و رقم المنفذ الخاص به (على سبيل المثال، 193.21.1.100:7373).

هذا كل شيء! يمكنك استخدام الإطار داخل المتصفح.

البناء

يمكنك أيضًا بناء الصور بنفسك من خلال البرامج النصية الموجودة في مجلد utils

الإعدادات

يمكنك تكوين بعض الميزات لتخصيص الإعداد من خلال متغيرات ENV، الجدول التالي يوفر قائمة بجميعها:

متغير REAL_DEVICE_SERIAL أساسي إذا كان هناك أكثر من جهاز فعلي واحد متصل لأنه إذا كان مفقودًا، فلن يعمل شيء. أخيرًا، قائمة المنافذ المُعرضة من قبل كل مكون:

الترخيص

Dockerized Android هو برنامج مفتوح المصدر ومجاني تم إصداره بموجب ترخيص MIT.

من يتحدث عن Dockerized Android

  • SecSI
    • https://secsi.io/blog/a-container-based-framework-for-android-emulation-and-hacking/
  • KitPloit
    • https://www.kitploit.com/2021/10/dockerized-android-container-based.html
    • https://www.kitploit.com/2021/12/top-20-most-popular-hacking-tools-in.html

Citation

إذا وجدت هذا الكود مفيدًا في بحثك، يرجى النظر في الاستشهاد بورقتنا البحثية:

root@kitploit:~
@inproceedings{Capone2022,
  doi = {10.1109/icecet55527.2022.9872834},
  url = {https://doi.org/10.1109/icecet55527.2022.9872834},
  year = {2022},
  month = jul,
  publisher = {{IEEE}},
  author = {Daniele Capone and Francesco Caturano and Angelo Delicato and Gaetano Perrone and Simon Pietro Romano},
  title = {Dockerized Android: a container-based platform to build mobile Android scenarios for Cyber Ranges},
  booktitle = {2022 International Conference on Electrical,  Computer and Energy Technologies ({ICECET})}
}

الإسناد

يمثل هذا المشروع أطروحة الماجستير الخاصة بنا في هندسة الكمبيوتر في جامعة Federico II of Naples. شكر خاص للأستاذ Simon Pietro Romano والمهندس Francesco Caturano، مصادر الإلهام لهذا العمل.

تنزيل الأداة
إصدار AndroidAPIالصورة
5.0.121secsi/dockerized-android-core-emulator-5.0.1
5.1.122secsi/dockerized-android-core-emulator-5.1.1
6.023secsi/dockerized-android-core-emulator-6.0
7.024secsi/dockerized-android-core-emulator-7.0
7.1.125secsi/dockerized-android-core-emulator-7.1.1
8.026secsi/dockerized-android-core-emulator-8.0
8.127secsi/dockerized-android-core-emulator-8.1
9.028secsi/dockerized-android-core-emulator-9.0
10.029secsi/dockerized-android-core-emulator-10.0
11.030secsi/dockerized-android-core-emulator-11.0
--secsi/dockerized-android-core-bare
--secsi/docker-android-core-real-device
المكوناسم ENVالقيمة الافتراضيةالوصف
CoreTARGET_PORT6080منفذ Websockify
CoreCUSTOM_APP_DEFAULT_PORT4242منفذ الخلفية Node.js
CoreDEVICEINFOغير مُعيّن، لكنه يتصرف مثل trueتمكين/تعطيل ميزة معلومات الجهاز
CoreTERMINALغير مُعيّن، لكنه يتصرف مثل trueتمكين/تعطيل ميزة الطرفية
CoreAPKغير مُعيّن، لكنه يتصرف مثل trueتمكين/تعطيل ميزة تثبيت APK
CoreFORWARDغير مُعيّن، لكنه يتصرف مثل trueتمكين/تعطيل ميزة إعادة توجيه المنافذ
CoreSMSغير مُعيّن، لكنه يتصرف مثل trueتمكين/تعطيل ميزة محاكاة SMS
CoreREBOOTغير مُعيّن، لكنه يتصرف مثل trueتمكين/تعطيل ميزة إعادة التشغيل
CoreINSTALL_ON_STARTUPfalseتمكين/تعطيل الميزة التي تسمح بتثبيت جميع ملفات APK الموضوعة في مجلد /root/dockerized-android/apk
CoreENABLE_UNKNOWN_SOURCESfalseتمكين التثبيت من مصادر غير معروفة
CoreREAL_DEVICE_SERIALغير مُعيّنإذا كان هناك أكثر من جهاز فعلي متصل، يجب تعيين هذه القيمة إلى الرقم التسلسلي للجهاز الذي سيتم التحكم به، وإلا فإن جميع الميزات الأخرى لن تعمل
Instance ManagerDEFAULT_PORT7373منفذ REST API
المكونرقم المنفذ #الوصف
Core5555منفذ ADB
Core4242خلفية Node.js
Core6080Websockify (لـ noVNC)
UI80الواجهة الأمامية
Instance Manager7373REST API