نجح باحثون في استخراج وتفكيك الشفرة الدقيقة لمعالج Intel 80386، الذي كان يُعتبر "صندوقًا أسود" لافتقاره إلى التوثيق. أُعيد إنشاء صورة ثنائية للشفرة الدقيقة باستخدام الذكاء الاصطناعي من صور عالية الدقة للرقاقة، وفُكّت شفرة المنطق باستخدام مخططات الأسلاك الداخلية. وتم تحديد بنية العمليات الدقيقة، والحقول، وترتيب التنفيذ، وعلامات نهاية التعليمات تدريجيًا. نُشرت نتائج المشروع على منصة GitHub كملكية عامة.

تبين أن جميع التعليمات في وحدة المعالجة المركزية 80386 تُنفذ بالكامل عبر الشفرة الدقيقة، بينما في معالجات 8086 والمعالجات الحديثة، تُعالج بعض التعليمات مباشرةً. علاوة على ذلك، وعلى عكس معالجات 8086، لا تُنفذ الشفرة الدقيقة في معالج 80386 الخوارزميات مباشرةً، بل تُستخدم بشكل أساسي لتهيئة مُسرّعات الأجهزة (المُضاعِف، والمُقسِّم، والمُبدِّل السريع، ووحدة اختبار الحماية).
كما كشفت الدراسة عن مشكلة أمنية محتملة في التعامل مع خريطة بتات أذونات الإدخال/الإخراج: عند الوصول إلى منافذ 4 بايت، يتم فحص بتات الأذونات لأول 3 بايت فقط، ولا يتم فحص الوصول إلى البايت الرابع، مما يسمح نظريًا بالوصول إلى سجلات الأجهزة التي لا ينبغي الوصول إليها.
استنادًا إلى الشفرة المصغرة المنشورة، تم تطوير معالج z386 مفتوح المصدر، ونُفِّذ بلغة SystemVerilog، ويعمل على مصفوفة بوابات قابلة للبرمجة (FPGA). وبدلًا من تنفيذ كل تعليمة كطبقة نقل سجلات (RTL) منفصلة، يُنفِّذ معالج z386 هياكل الأجهزة التي تتحكم بها الشفرة المصغرة الأصلية. ويُضاهي أداء التنفيذ الناتج أداء حاسوب شخصي سريع من طراز 386 (حوالي 70 ميجاهرتز). وقد نجح معالج z386 في تشغيل أنظمة DOS 6/7 وDOS/4GW وDOS/32A، بالإضافة إلى ألعاب مثل Doom وCannon Fodder.
المصدر: opennet.ru
