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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ll-34 — محاكي PDP-11/34 على مستوى الدوائر | Kitploit
أدوات/GitHubGitHub/dbrll/ll-34
أمان الأنظمة المدمجةالهندسة العكسيةمصممي الأخطاءأمن الأجهزةالتعلم والتعليمموارد منسقةتحليل البرامج الثابتة
GitHubdbrll/ll-34

ll-34

محاكي PDP-11/34 على مستوى الدوائر

عرض المستودع
694منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

ll/34

ll/34 هو محاكي على مستوى الدارة الكهربائية للحاسوب PDP-11/34A (1976)، يشغل وحدة معالجة مركزية افتراضية تم هندستها عكسياً من المخططات والبرمجيات الدقيقة والتسجيلات المنطقية لـ PDP-11/34A حقيقي.

صُمم في الأصل كنسخة رقمية طبق الأصل من وحدة المعالجة الحقيقية للمساعدة في استكشاف الأخطاء على مستوى الإشارة. تتكون وحدة المعالجة الافتراضية KD11-EA أساساً من ترجمة C للمخططات، واستعلامات لجداول ROM. جميع ذاكرات ROM التوافقية (combinational ROMs) معمولة عكسياً، ومولد الساعة منمذج بدقة.

تم اختيار مستوى الدارة (جداول الحقيقة لـ ROM + المنطق التوافقي) بدلاً من مستوى البوابات (Verilog) لأنه منخفض المستوى بما يكفي لإعادة إنتاج أخطاء العتاد، وسريع بما يكفي لتشغيل البرامج.

الأجهزة المحاكاة

  • لوحة الخلفية UNIBUS (دقيقة في التوقيت والإشارات)
  • وحدة المعالجة KD11-EA (مستوى دارة)
  • بطاقة الإقلاع M9301 مع ذواكر ROM أصلية للإقلاع والتشخيص
  • بطاقة السلسلة DL11 (دقيقة في التوقيت)
  • ساعة الخط KW11 (50/60 هرتز)
  • وحدة التحكم المبرمجة (بما في ذلك وضع الصيانة لاستكشاف أخطاء وحدة المعالجة)
  • محركات RK05 (محاكاة عالية المستوى لوحدة التحكم RK11)
  • محركات RL01 و RL02 (محاكاة عالية المستوى لوحدة التحكم RL11)
  • قارئ شريط
  • طرفية VT100 مع stdio، منفذ TCP أو أوضاع PTY

البنية

جميع الأجهزة موصولة بلوحة الخلفية UNIBUS (unibus.c)، التي تقوم بفك ترميز العناوين والتوقيت ودورات الناقل.

داخلياً، تتكون وحدة المعالجة من المكونات التالية:

الملفالوصف
ucode_rom.hمخزن برمجيات دقيقة 512×48 بت (PROMs ثنائي القطب)، مبني على Bitsavers Verilog والتفريغات. تتحكم كل كلمة دقيقة في ALU، السجل المؤقت، واجهة الناقل، والتفرع لدورة دقيقة واحدة.
combo_roms.hذواكر ROM توافقية (E51-E83, E107)، فك ترميز IR (E59/E60/E63/E69/E70/E71/E74)، اختيار وظيفة ALU (E61/E82/E83)، منطق أولوية المصيدة/الخدمة (E52/E53)، ومنطق كود الحالة (E68/E107)، جميعها أعيد تشكيلها من المخططات والتسجيلات المنطقية. تتصل ذواكر ROM ذات المجمع المفتوح (open-collector) بناقل MPC عبر وصل "OR" سلكي.
kd11ea.cمحرك مسار البيانات. يتقدم عبر البرمجيات الدقيقة كلمة دقيقة واحدة لكل دورة. يتم محاكاة بوابات 74xx الأساسية باستخدام معاملات المنطق في C (!, &&, >> إلخ). تم تصميم ALU ذو الشريحة 74S181 بالكامل (4 شرائح، 16 بت).
mmu.cإدارة الذاكرة. مساحات عنوان kernel/مستخدم، إعادة تموضع 18 بت (3 جامعات 74S283)، 16 زوج PAR/PDR، مسجلات إحباط SR0/SR2 مع منطق التجميد.
clockgen.cمولد الساعة. يمثل خط التأخير E106 (تغذية راجعة TAP 30/90/120، حجز ناقل TRAN INH). دورات قصيرة: 180 نانوثانية، دورات طويلة: 240 نانوثانية، تمتد عمليات نقل الناقل حتى عودة SSYN.
clock.cضبط الوقت الفعلي. يحافظ على توافق الوقت المحاكى مع وقت الساعة الحقيقية.
int.cمحكم المقاطعة. قائمة أولوية BR4-BR7، تقرب ترتيب منح سلسلة الأقحوان (daisy-chain) في UNIBUS.

وحدة التحكم المبرمجة (Ctrl-P)

تحاكي مفاتيح اللوحة الأمامية والمؤشرات للحاسوب PDP-11/34A. نشطة عندما تكون وحدة المعالجة متوقفة (تشغيل الطاقة، تعليمة HALT، أو Ctrl-P).

تسمح بتهيئة الناقل، إقلاع وحدة المعالجة، التنفيذ خطوة بخطوة، فحص وإيداع بيانات في عناوين عشوائية، والخروج من المحاكي.

الواجهة الأمامية منفصلة عن المحرك، لذلك تتوفر أيضاً واجهة رسومية واقعية للوحة الأمامية بلغة WebAssembly.

وحدة التحكم في التصحيح (Ctrl-E)

توفر وحدة التحكم في التصحيح مصححاً تفاعلياً لكل من مستوى البرمجيات الدقيقة ومستوى التعليمات:

  • s [n]: تنفيذ خطوة واحدة لعدد n من التعليمات الدقيقة مع تفريغ كامل للحالة (MPC, ALU, ناقل, مسجلات)
  • b addr: تعيين نقطة توقف PC (ثماني)، bl لعرض القائمة، bd n للحذف
  • g: استئناف التنفيذ
  • u [addr] [n]: فك تجميع التعليمات
  • c [addr] [n]: تفريغ الذاكرة (ثماني)
  • mmu: عرض حالة MMU (PAR/PDR لـ kernel والمستخدم، تمييز الوضع الحالي)
  • r: تفريغ المسجلات

محلل المنطق (Ctrl-L)

كان استكشاف أخطاء ll-34 أثناء تطويره مشابهاً جداً لاستكشاف أخطاء العتاد الحقيقي لدرجة أنه تم تنفيذ محلل منطقي داخلي لتتبع الإشارات وفحص مسار البيانات. أثبت ذلك أنه حاسم في تعقب أخطاء ذواكر ROM والتوقيت الدقيقة في وحدة المعالجة الافتراضية. يمكن استخدامه أيضاً كمرجع لاستكشاف أخطاء العتاد الحقيقي، تماماً كما ساعد العتاد العامل في تطوير المحاكي.

يسمح محلل المنطق بفحص 102 نقطة على إشارات وحدة المعالجة الرئيسية، مرسومة إلى دبابيس الشرائح الفعلية (ترميز KD1:Exx:pin المطابق لمخططات DEC K1-5 حتى K2-9). يتم توفير أسماء مستعارة منطقية (MPC, ALU_OUT, IR, PSW…) لسهولة الاستخدام.

معدل العينة هو ساعة وحدة المعالجة الفعلية (5,555,556 هرتز) بدقة 180 نانوثانية لكل عينة. يقلل مقسم قابل للتكوين معدل العينة لنوافذ أخذ عينات أطول.

تستخدم عمليات الالتقاط مخزناً حلقيًا (حتى 64K عينة) مع مشغل قابل للتكوين على أي إشارة، وموضع مشغل قابل للتعديل (نسبة قبل/بعد)، وتصدير CSV للتحليل دون اتصال.

تم استخدام عمليات التقاط المنطق بحرية في جميع أنحاء المشروع لرسم خرائط وتصحيح مسارات تعدد الإرسال غير المفهومة جيداً.

برامج نموذجية

يأتي ll-34 مع بعض البرامج والأنظمة لتجربتها: لعبة "Game of Life"، وV6 UNIX، وRT-11 V4 مع لعبة Tetris الأصلية، وATTN/11، وهو محول Transformer صغير قابل للتدريب مع آلية الانتباه الذاتي.

RT-11

root@kitploit:~
./ll-34 --rk ./wasm/demos/rtv4_rk.dsk

سيقوم ذاكرة ROM الإقلاع بتحميل النظام تلقائياً من RK11 وبدء تشغيل نظام التشغيل. سيعرض DIR قائمة الملفات، وسيطبع HELP المساعدة، وسيبدأ RUN TETRIS عرض Tetris (على الرغم من أن $TERM ربما سيكون خاطئاً؟). سيبدأ RUN ADVENT لعبة Colossal Cave Adventure، المبنية على PDP-11/34 حقيقي.

v6 Unix

root@kitploit:~
./ll-34 --rk ./wasm/demos/v6bin.rk

سيقوم محمل الإقلاع بطباعة موجه @ مصغر. اكتب rkunix واضغط Enter، وبعد بضع ثوانٍ يجب أن تحصل على موجه login:. أدخل اسم المستخدم root بدون كلمة مرور وستكون في النظام! ملاحظة: cd يسمى chdir في الإصدارات المبكرة من Unix.

البناء

make + مترجم C11، لا توجد تبعيات أخرى.

متحقق من التجميع بدون تحذيرات على Linux (x86_64 و aarch64) مع كل من musl و glibc، macOS aarch64، و NetBSD 10 aarch64.

التشغيل

بالإضافة إلى واجهة سطر الأوامر، تتوفر نسخة WebAssembly مستقلة بواجهة رسومية واقعية هنا: https://dbrll.github.io/ll-34.

ملاحظة: ll-34 هو محاكي كثيف الاستخدام للموارد. على عكس محاكيات مستوى التعليمات، فهو يتقدم عبر البرمجيات الدقيقة دورة واحدة في كل مرة ويقوم بتشغيل ALU، ذواكر ROM التوافقية، السجل المؤقت، مولد الساعة، وتوقيت الناقل في كل خطوة. يجب أن يحافظ المضيف على وتيرة مولد الساعة 5.5 ميجاهرتز بشكل مستمر ليبقى دقيقاً من حيث الدورة.

عند بدء التشغيل، يقوم المحاكي بإجراء تقييم لأدائه ويبلغ عن سرعته مقارنة بـ KD11-EA حقيقي. النسبة أقل من 1x تعني أن المضيف لا يستطيع اللحاق بالتوقيت الفعلي وأن دقة التوقيت غير مضمونة. التقييم غير متوفر في إصدار WebAssembly، حيث أن دقة مؤقت المتصفح تجعله غير موثوق. نظراً لأن بناء WASM أبطأ من الأصلي (native)، فإن تشغيله على هاتف ذكي سيكون عادةً بطيئاً جداً.

تنزيل الأداة