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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dd — نواة لينكس في مساحة المستخدم قائمة على JIT تدير الحاويات بشكل أصلي على macOS من Apple Silicon دون استخدام جهاز افتراضي. بديل مباشر لواجهة Docker Engine API مع عزل الحاويات، صور التراكب، ونشر المنافذ. | Kitploit
أدوات/GitHubGitHub/ricccrd/dd
أمن الحاوياتالتحليل الديناميكي (عزل)الهندسة العكسيةالمحاكاة الافتراضية للأمانDevSecOpsتحليل الملفات الثنائية
GitHubricccrd/dd

dd

نواة لينكس في مساحة المستخدم قائمة على JIT تدير الحاويات بشكل أصلي على macOS من Apple Silicon دون استخدام جهاز افتراضي. بديل مباشر لواجهة Docker Engine API مع عزل الحاويات، صور التراكب، ونشر المنافذ.

عرض المستودع
2585منذ 16 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

dd

dd

شغّل حاويات لينكس على macOS — دون آلة افتراضية.

Download Platform License Website


ما هو dd؟

dd يشغّل حاويات لينكس بشكل أصلي على macOS بمعمارية Apple Silicon دون آلة افتراضية. لا يوجد نواة لينكس ولا هايبرفايزر تحتها: JIT يترجم كود الحاوية ويخدم استدعاءات النظام لينكس في مساحة المستخدم (سلالة gVisor / PRoot). JIT هو نواة لينكس للضيف — فضاءات الأسماء، cgroups، طبقات الصورة overlays، والشبكات تُحتفظ بها كحالة في مساحة المستخدم. يتحدث واجهة Docker Engine API، لذا فإن سطر الأوامر العادي docker يقودها.

حوسبة الحاوية تعمل كتعليمات أصلية لـ Apple Silicon؛ فقط استدعاءات النظام الخاصة بها تُفسّر. لا آلة افتراضية للإقلاع، لا خفيّ داخل آلة افتراضية، لا تكلفة افتراضية.

الموقع والوثائق: https://ricccrd.github.io/dd/

root@kitploit:~
make jit                                          # build.rs compiles + codesigns the JITs
DD_IMAGES=/path/to/images cargo run -p dd-daemon  # start the daemon
export DOCKER_HOST=unix://$PWD/dd.sock
docker run -p 8080:80 -m 256m alpine sh -c 'echo hi from $(hostname)'

الميزات

  • لا آلة افتراضية. لا هايبرفايزر، لا نواة لينكس، لا آلة افتراضية مقيمة. تعليمات الضيف تعمل أصلياً على arm64؛ فقط حدود استدعاءات النظام يُلتقط ويُخدم في مساحة المستخدم.
  • Docker قابل للتبديل الفوري. dd يطبّق واجهة Docker Engine API. وجّه DOCKER_HOST إلى مقبسها وستعمل أوامرك الحالية docker run / ps / images / build دون تغيير.
  • JIT هو النواة. فضاءات الأسماء، cgroups، طبقات الصورة overlays، والشبكات هي حالات عادية في مساحة المستخدم — نواة مساحة مستخدم في سلالة gVisor / PRoot، دون أي تكلفة لآلة افتراضية.
  • ثلاث بيئات تشغيل ضيف، محرك واحد. صور arm64 لينكس أصلية؛ صور x86-64 لينكس عبر JIT (jit86) الذي يفك تشفير x86، يصنع أعلامها، ويخفض SSE/x87 إلى NEON (ثنائيات glibc تعمل)؛ وضيوف macOS arm64 (ddcli mac) — لا آلة افتراضية في أي منها.
  • عزل حاوية حقيقي. طبقات الصورة overlays (نسخ-لأعلى / .wh. whiteout، getdents مدمجة)، VFS سجن مسار خالٍ من TOCTOU، فضاءات أسماء PID / UTS / USER، netns loopback خاص مع نشر منفذ -p، وحدود cgroup للذاكرة والعمليات (OOM عند الحد).
  • تطبيق سطح مكتب، بدون صلاحيات جذر. تطبيق GTK4 أصلي (dd-app) بالإضافة إلى واجهة سطر الأوامر dd يُثبّت خفيّاً خلفياً لكل مستخدم وdocker context — كل شيء تحت ، أبداً .

لماذا JIT وليس آلة افتراضية؟

كل طريقة أخرى لتشغيل حاويات لينكس على ماك — Docker Desktop، Colima، Rancher، OrbStack — تُقلّع آلة افتراضية لينكس تحت هايبرفايزر وتشغّل الخفيّ داخلها. تلك الآلة الافتراضية ضريبة تدفعها طوال اليوم. dd يلغيها: الحاوية هي عملية ماك عادية تحدث استدعاءات نظامها بالصدف أن تُخدم بواسطة نواة لينكس في مساحة المستخدم.

المكسب هيكلي: حوسبة الضيف تعمل كـ تعليمات أصلية لـ Apple Silicon (لا طبقة افتراضية للأجهزة في المسار الساخن)، واختناق مشاركة الملفات الشهير في Docker-Desktop — جسر virtiofs/FUSE بين ماك والآلة الافتراضية — ببساطة غير موجود، لأن VFS الخاص بـ dd هو نظام ملفات المضيف خلف سجن مسار.

مقايضة صادقة: نواة مساحة المستخدم كاملة فقط بقدر استدعاءات النظام التي تنفذها، واليوم افتراضياً يعمل الضيف في عملية واحدة — سريع، والقرار الصحيح للكود الذي تثق به (بيئة التطوير، CI، أدواتك الخاصة). للكود غير الموثوق يوجد الآن انقسام حارس اختياري (DDJIT_UNTRUSTED): يعمل الضيف في صندوق رمل Seatbolt يمنع افتراضياً بدون أي صلاحيات مضيف لنظام الملفات/الشبكة، بينما عملية حارس موثوقة تمتلك الموارد الحقيقية وتخدم استدعاءات النظام عبر حلقة ذاكرة مشتركة — شكل gVisor. لا يزال مبكراً (استدعاءات نظام الملفات الأساسية — read/write/open/close/lseek — توجّه اليوم؛ المقابس/exec/fork قيد التطوير)، لذا للكود المعادي بالكامل لا تزال الآلة الافتراضية تعرض سطحاً أضيق.

الأداء

نفس ثنائي لينكس الثابت، يُشغّل بطريقتين على Apple M5 Pro (macOS 26.3): داخل آلة افتراضية لينكس (كيف تشغّل Docker القائمة على آلة افتراضية الحاويات) مقابل عبر JIT الخاص بـ dd على المضيف بدون آلة افتراضية. متوسط 7 (make bench). الوقت الأقل أفضل؛ "dd مقابل VM" > 1× يعني dd أسرع. حارة dd تدفع حتى ضريبة جسر عبر عملية صغيرة لا يدفعها التطبيق الحقيقي — لذا فهذه متحفّظة.

حاويات x86-64 — dd مقابل محاكاة آلة افتراضية (qemu-user؛ تشغيل x86 على Apple Silicon يعني ترجمتها في كلتا الحالتين). JIT الخاص بـ dd يتفوق على qemu في 9 من 10 أعباء العمل، بشكل كبير في الفاصلة العائمة:

حاويات aarch64 — dd مقابل آلة افتراضية أصلية (الآلة الافتراضية تشغّل arm64 بسرعة أصلية كاملة — أصعب معيار):

dd يشغّل حوسبة arm64 بسرعة أصلية — متقدماً في int sieve + mandelbrot، بتكافؤ في SHA-256، matmul، memcpy، n-body، و base64. الفجوات المتبقية هي عمل ثقيل في الفروع غير المباشرة / استدعاءات النظام — qsort (~1.3×)، text-scan (~1.35×) و SQLite (~1.5×) — ضيّقت بشدة بواسطة التمريرات الأخيرة (§B-off + x16/x17 المسروقة أخذت SQLite من ~1.9× إلى ~1.5×). إغلاق الباقي (توزيع VDBE) هو الحدود النشطة؛ انظر docs/design/arm-sqlite-parity.md. (كل عبء عمل بحجم ≥0.45s، لذا فإن ضريبة جسر الجري الصغيرة لكل تشغيل لا تذكر هنا.)

هذه معايير دقيقة للحوسبة — إنها لا تلتقط حتى المكاسب الهيكلية لـ dd (لا آلة افتراضية للإقلاع، لا ذاكرة مقيمة، إدخال-إخراج مباشر لنظام ملفات المضيف). جميع الأرقام مُقاسة، متوسط 7. كرّر: make bench.

الهدف هو التغلب على الآلة الافتراضية في كل معيار. dd يفوز بالفعل في كل عبء عمل x86-64 أعلاه ويتطابق أو يتفوق على arm64 الأصلي؛ حيث لا يزال متأخراً — SQLite arm64 الثقيل في استدعاءات النظام/تخصيص الذاكرة، واستخراج المزيد من مترجم x86 — هو بالضبط حدود التحسين (مُحسّن التتبع من المستوى الثاني وعمل أداء jit86). التكافؤ أو الأفضل في كل مكان هو المعيار.

كيف يعمل

dd يشغّل حاوية لينكس بكونه نواتها في مساحة المستخدم. JIT يترجم كود الآلة للضيف ويصطاد كل تعليمة استدعاء نظام؛ معالج الصيد — service() في dd-jit/src/runtime/os/linux/ — هو ABI استدعاءات النظام لينكس، مطبّق ضد مضيف macOS.

  1. تحميل ELF الضيف (static-PIE، أو ديناميكي عبر ld.so) وبناء الكومة الأولية.
  2. ترجمة وتوزيع عداد البرنامج للضيف كتلة-كتلة؛ كود نفس المعمارية يُترجم حرفياً غالباً، x86-64 يُفك ويُعاد إصداره على arm64.
  3. تشغيل الكتلة المترجمة ككود مضيف أصلي حتى منهِه (فرع / قفزة غير مباشرة / استدعاء نظام).
  4. خدمة استدعاء النظام — كل مسار يمر عبر سجن VFS الحاوية؛ فضاءات الأسماء و cgroups هي مجرد حالة عملية.

أمثلة

root@kitploit:~
# 1. ابدأ الخفيّ، وجّه docker إليه
make jit
DD_IMAGES=/path/to/images cargo run -p dd-daemon
export DOCKER_HOST=unix://$PWD/dd.sock

# 2. إنه مجرد Docker
docker run -p 8080:80 -m 256m alpine sh -c 'echo hi from $(hostname)'
docker ps
docker images
docker run --rm -it ubuntu bash

# 3. أو عبر تطبيق سطح المكتب المثبت (لكل مستخدم، بدون جذر)
dd install                                  # LaunchAgent + docker context
dd app                                       # افتح الواجهة الرسومية
docker --context dd run alpine echo hi

التثبيت

dd يستهدف Apple-Silicon macOS (arm64، macOS 12+). JIT يحتاج إلى Xcode Command Line Tools (clang + codesign).

تنزيل التطبيق (موصى به)

احصل على أحدث .dmg من صفحة الإصدارات، افتحه، واسحب dd إلى التطبيقات. ثم في الطرفية:

root@kitploit:~
dd install     # ~/.dd tree + per-user LaunchAgent + `docker context create dd`
dd app         # افتح الواجهة الرسومية
dd doctor      # تحقق من المقبس / الوكيل / السياق / حجر التطبيق

Gatekeeper: الـ DMG غير موقّع (مؤقت). عند التشغيل الأول، انقر بزر الماوس الأيمن على التطبيق → فتح، أو تشغيل xattr -dr com.apple.quarantine /Applications/dd-app.app (dd doctor يكتشف هذا ويطبع الإصلاح).

البناء من المصدر

root@kitploit:~
xcode-select --install                       # clang + codesign
# ثبت Rust (المستقر) و Nix (لبيئة تطوير GTK4)
git clone https://github.com/ricccrd/dd && cd dd
make app       # بناء + تجميع وتوقيع مؤقت target/dd-app.app
make dmg       # -> target/dist/dd-<ver>-<arch>.dmg
make install   # نسخ إلى /Applications وتشغيل `dd install`

make app/dmg تشغيل التجميع داخل بيئة تطوير Nix (nix/flake.nix)، التي توفر GTK4 + dylibbundler / create-dmg. الحزمة تعيد توطين رسم بياني لـ dylib الخاص بـ GTK إلى Contents/Frameworks، وتجهّز بيانات تشغيل GTK، وتوقّع مؤقتاً من الداخل إلى الخارج.

مساحة العمل

مساحة عمل Cargo.

  • dd-jit/ — بيئة تشغيل JIT (C، تحت src/runtime/) بالإضافة إلى روابط Rust الخاصة بها. build.rs يجمّع ويوقّع ثنائي JIT واحد لكل معمارية ضيف (aarch64, x86_64)؛ src/lib.rs يعرض Guest + عقد الإطلاق المكتوب SpawnConfig. ضيف aarch64 محلّل بالكامل (محرك jit/ + شخصية os/linux/ + واجهة أمامية frontend/aarch64/)؛ ضيف x86-64 (jit86) يشارك طبقة os/linux/.
  • dd-daemon/ — خفيّ Docker Engine API. يكتشف معمارية ضيف كل صورة من ELF الخاص بها، يختار JIT المطابق، ويطلقه عبر .

الخفيّ يستمع على ~/.dd/run/docker.sock؛ كل من الواجهة الرسومية و docker --context dd يستخدمونه. الحالة تُحفظ إلى ~/.dd/state.json.

الاختبار

root@kitploit:~
make test                       # مصفوفة المحرك × الحالة، تقرير مجمّع
make test ENGINE=x86_64         # محرك واحد
make test FILTER=container      # مجموعة واحدة / حالات تطابق اسماً
cargo run -p dd-tests -- --list # قائمة المجموعات + الحالات
make test-ci                    # مسار اختبار cargo (CI)

الحالات مُصرّحة في dd-tests/src/cases/. الحالة هي برنامج ضيف + تأكيدات؛ ضيوف aarch64 يُجمّعون فورياً (gcc -static-pie) ويُقارنون مع oracle أصلي، ضيوف x86-64 يأتون من تجهيزات مبنية مسبقاً. كل حالة تُشغّل على كل محرك لديها ضيف له.

الحالة

  • الضيف: لينكس aarch64 (محلّل، محرك حاوية كامل) + x86-64 (jit86، يشغّل glibc).
  • المضيف: macOS arm64 (Apple Silicon). JIT يحتاج clang + codesign (Xcode CLT).
  • الحاويات: rootfs + طبقات صورة overlays (نسخ-لأعلى/whiteout)، وحدات تخزين bind، نشر منفذ (-p)، netns loopback خاص، حدود cgroup للذاكرة+العمليات، فضاءات أسماء UTS/PID/USER.
  • خارطة الطريق: سحب/فك ضغط سجل OCI، إلغاء تكرار jit86 على المحرك المشترك، مجموعة شبكة خارجية كاملة، وانقسام الحارس للصور غير الموثوقة. انظر docs/ للكتابات المفصلة.

المؤلف

ريتشارد هوتا — [email protected]

الترخيص

MIT.

تنزيل الأداة
$HOME
sudo
dd — نواة مساحة مستخدم (JIT)Docker القائم على آلة افتراضية (Desktop / Colima / …)
النموذج الأساسيJIT يخدم استدعاءات نظام لينكس في مساحة المستخدم (سلالة gVisor)نواة لينكس كاملة داخل آلة افتراضية تحت هايبرفايزر
الذاكرة المقيمة عند الخموللا شيء — لكل حاوية، تُحرر عند الخروجغيغابايت محجوزة للآلة الافتراضية، دائماً قيد التشغيل
بدء التشغيلإطلاق عملية — لا آلة افتراضية للإقلاعإقلاع آلة افتراضية لينكس + الخفيّ داخلها أولاً
الربط-التركيب / إدخال-إخراج الملفاتنظام ملفات المضيف مباشر عبر سجن مسارجسر virtiofs/gRPC-FUSE عبر حدود الآلة الافتراضية
نشر المنفذمباشرة إلى مقابس المضيفعبر طبقة NAT/إعادة توجيه الآلة الافتراضية
تكلفة البطارية / الخلفيةلا شيء يعمل عندما لا توجد حاويةآلة افتراضية خاملة وتستهلك البطارية
مساحة التوزيع والتصحيحلا نواة لينكس — لا شيء لتتبّع CVEsيوزّع ويصحّح ويتتبّع نواة لينكس كاملة
قابلية المراقبةعملية ماك عادية — sample, debug, Activity Monitorآلة افتراضية غير شفافة؛ عبء العمل غير مرئي لأدوات المضيف
عبء العملآلة افتراضية (qemu)dd (بدون آلة افتراضية)dd مقابل آلة افتراضية
float n-body5.39s0.23sأسرع بـ 24×
mandelbrot7.81s0.83sأسرع بـ 9.4×
matmul8.21s1.37sأسرع بـ 6.0×
SQLite (600k rows)2.99s1.01sأسرع بـ 3.0×
qsort3.91s1.68sأسرع بـ 2.3×
memcpy2.40s1.10sأسرع بـ 2.2×
text-scan (wc/grep)1.42s1.11sأسرع بـ 1.3×
int sieve1.31s1.04sأسرع بـ 1.25×
SHA-2562.72s2.44sأسرع بـ 1.1×
base644.28s5.39s0.79× (أبطأ بـ 1.26×)
عبء العملآلة افتراضية (أصلية)dd (بدون آلة افتراضية)dd مقابل آلة افتراضية
int sieve0.75s0.48sأسرع بـ 1.58×
mandelbrot0.79s0.77sأسرع بـ 1.03×
matmul0.66s0.66s~تكافؤ
memcpy0.55s0.56s~تكافؤ
base640.68s0.68s~تكافؤ
float n-body0.17s0.17s~تكافؤ
SHA-2560.80s0.82s~تكافؤ
qsort0.83s1.10sأبطأ بـ 1.33×
text-scan (wc/grep)0.51s0.68sأبطأ بـ 1.35×
SQLite (600k rows)0.36s0.62sأبطأ بـ 1.71×
SpawnConfig
  • dd-tests/ — إطار اختبار تصريحي؛ الحالات تُشغّل عبر كل محرك مع تقرير مجمّع.
  • dd-client/ — عميل صغير مكتوب لواجهة Docker-Engine-API عبر مقبس Unix الخاص بالخفيّ (المصدر الوحيد للحقيقة لصيغة الشبكة، مشترك بين الواجهة الرسومية وسطر الأوامر).
  • dd-gui/ (ثنائي dd-app) — واجهة مستخدم سطح مكتب GTK4. تُبنى فقط على macOS عبر بيئة تطوير Nix.
  • dd-cli/ (ثنائي dd) — سطح التثبيت/التحكم، كل ذلك بدون جذر.