
أداة استخراج الميكروكود من Intel و AMD و VIA و Freescale
أداة استخراج المايكروكود من Intel و AMD و VIA و Freescale
مستودعات مايكروكود وحدة المعالجة المركزية من Intel و AMD و VIA و Freescale

MC Extractor هي أداة تقوم بتحليل ملفات المايكروكود الثنائية (binaries) لمعالجات Intel و AMD و VIA و Freescale. يمكن استخدامها من قبل المستخدمين النهائيين الباحثين عن جميع المعلومات ذات الصلة بالمايكروكود مثل CPUID والنظام الأساسي (Platform) والإصدار (Version) والتاريخ (Date) والإصدار (Release) والحجم (Size) والمجموع الاختباري (Checksum) وغيرها. وهي قادرة على تحويل حاويات مايكروكود Intel (dat, inc, h, txt) إلى صور ثنائية مناسبة للتضمين في BIOS، واكتشاف المايكروكودات الجديدة/غير المعروفة، والتحقق من سلامة المايكروكود، وحالته المحدثة/القديمة، وغير ذلك. يمكن أيضاً استخدام MC Extractor كأداة تحليل بحثية بهياكل متعددة تسمح، من بين أمور أخرى، بالتحليل الكامل وعرض معلومات جميع رؤوس المايكروكود الموثقة أو غير الموثقة. علاوة على ذلك، وبمساعدة قاعدة بياناتها الواسعة، تستطيع MC Extractor تصنيف جميع المايكروكودات المدعومة بشكل فريد، بالإضافة إلى التحقق من أي مايكروكودات لم يتم تخزينها بعد في مستودعات المايكروكود.
تسمح MC Extractor للمستخدمين النهائيين و/أو الباحثين باستخراج وعرض وتحويل والإبلاغ عن إصدارات المايكروكود الجديدة بسرعة دون الحاجة إلى أدوات خاصة أو محررات سداسية عشرية. للقيام بذلك بفعالية، كان لابد من بناء قاعدة بيانات. مستودعات مايكروكود وحدة المعالجة المركزية من Intel و AMD و VIA و Freescale هي مجموعة من كل مايكروكودات Intel و AMD و VIA الإنتاجية الأحدث التي وجدناها. وجودها مهم جداً لـ MC Extractor لأنها تسمح لنا بمواصلة البحث واكتشاف أنواع جديدة من المايكروكود ومقارنة الإصدارات للتشابه والتحقق من الملفات الثنائية المحدثة وغيرها. مرفق مع MC Extractor ملف يسمى MCE.db وهو مطلوب لتشغيل البرنامج. يتضمن إدخالات لجميع ملفات المايكروكود الثنائية المتاحة لدينا. يستوعب هذا بشكل أساسي إجراءين: أ) التحقق مما إذا كان المايكروكود المستورد محدثاً، ب) المساعدة في العثور على إصدارات مايكروكود جديدة بشكل أسرع من خلال الإبلاغ عنها في موضوع نقاش مستودعات مايكروكود وحدة المعالجة المركزية من Intel و AMD و VIA و Freescale.
استندت MC Extractor في البداية إلى جزء من أداة UEFIStrip الخاصة بـ Lordkag، لذا، أولاً وقبل كل شيء، أشكره على كل أعماله التي ألهمت هذا المشروع. من بين الأماكن الرائعة لتعلم المايكروكود: موقع Intel الخاص بالتحميل والوثائق الرسمية، براءة اختراع مصادقة تصحيح المايكروكود من Intel، Coreboot (أ, ب, ج), Microparse من Dominic Chen، ملاحظات وبحوث Ben Hawkes, Microdecode من Richard A Burton، تفريغات CPUID من AIDA64, CPUID من Sandpile, Free Electrons (أ, ب), Freescale (أ, ب, ج, د) والعديد غيرهم ممن قد نسيتهم ولكن كانوا سيكونون هنا لولا ذلك.
هناك طريقتان لاستخدام MC Extractor: سكريبت MCE وموجه الأوامر. يتيح لك سكريبت MCE إدخال أو سحب وإفلات واحد أو أكثر من ملفات البرامج الثابتة (firmware) وعرضها واحداً تلو الآخر أو فحص الدلائل بأكملها بشكل متكرر. للاستخدام اليدوي لـ MC Extractor، يمكن استخدام موجه الأوامر مع المعامل -skip.
لاستخدام MC Extractor، حدد ملفاً واحداً أو عدة ملفات وأدخلها أو اسحبها وأفلتها في السكريبت الخاص بها. يمكنك أيضاً إدخال بعض المعاملات الاختيارية إما بتشغيل MCE مباشرة أو بإسقاط ملف واحد أو أكثر أولاً عليه. ضع في اعتبارك أنه، بسبب قيود نظام التشغيل، يوجد حد لعدد الملفات التي يمكن إسقاطها مرة واحدة. إذا كان هذا الأخير مشكلة، يمكنك دائماً استخدام المعامل -mass لفحص الدلائل بأكملها بشكل متكرر، كما هو موضح أدناه.
هناك معاملات متنوعة تعزز أو تعدل السلوك الافتراضي لـ MC Extractor:
يمكن لـ MC Extractor بناء تنسيق كتلة مايكروكود (MCB) الخاص بها، والذي يجمع بين عدة ملفات مايكروكود ثنائية من Intel أو AMD في ملف واحد. يسمح هذا بشكل أساسي باستخراج سريع وتلقائي لأحدث ملف مايكروكود ثنائي متوافق بناءً على إدخال ملف مايكروكود ثنائي مكافئ من المستخدم. تتكون MCB من رأس (Header) قابل للتعرف وجدول بحث للإدخالات (LUT) متبوعاً ببيانات المايكروكود الثنائية الفعلية. يتضمن الرأس معلومات مثل بائع المايكروكود (Intel أو AMD) وعدد المايكروكودات ومراجعة قاعدة بيانات MCE ومجموعاً اختبارياً يغطي الكتلة بأكملها. تتضمن إدخالات LUT تفاصيل لكل ملف مايكروكود ثنائي مثل CPUID والنظام الأساسي (Platform) والمراجعة (Revision) والتاريخ (Date) والحجم (Size) والمجموع الاختباري (Checksum) والإزاحة داخل الكتلة (Offset).

لبناء كتلة مايكروكود MCE (MCB.bin)، أدخل ملفات المايكروكود الثنائية المطلوبة من Intel أو AMD واستخدم المعامل -blob. يمكنك استخدام المايكروكودات الخاصة بك أو العثور على أحدث مايكروكودات Intel و AMD الإنتاجية في مستودع مايكروكودات وحدة المعالجة المركزية من Intel و AMD و VIA و Freescale. لاستخراج أحدث مايكروكود من MCB، أدخل ملف مايكروكود ثنائي واحد واستخدم المعاملين -blob -search. ستتحقق MC Extractor من MCB المكتشفة، وتتحقق مما إذا كان المايكروكود محدثاً بالفعل قبل استخراج الأحدث، وستخطر وفقاً لذلك.
أثناء التشغيل، قد تواجه MC Extractor مشكلات يمكن أن تؤدي إلى ملاحظات (Notes) وتحذيرات (Warnings) وأخطاء (Errors). توفر الملاحظات (باللون الأصفر/الأخضر) معلومات مفيدة حول خاصية معينة لهذه البرامج الثابتة. تحذر التحذيرات (باللون الأرجواني) المستخدم من مشكلات محتملة قد تسبب عدم استقرار النظام. تظهر الأخطاء (باللون الأحمر) عند مواجهة شيء غير متوقع أو إشكالي.
تتكون MC Extractor من ملفين، السكريبت (MCE.py) وقاعدة بياناته (MCE.db). قم بتنزيل أحدث إصدار من علامة التبويب الإصدارات (Releases)، يجب أن يبدأ العنوان بـ "MC Extractor vX.Y.Z". قد تحتاج إلى التمرير لأسفل قليلاً إذا كانت هناك إصدارات قاعدة بيانات في الأعلى. يمكن استخدام الأخيرة لتحديث قاعدة البيانات القديمة المرفقة مع أحدث إصدار "MC Extractor vX.Y.Z"، يجب أن يبدأ العنوان بـ "DB rXY".
يجب أن تعمل MC Extractor على جميع أنظمة تشغيل Windows أو Linux أو macOS التي تدعم Python >= 3.7.
لتشغيل MC Extractor، تحتاج إلى تثبيت Python >= 3.7 متبوعاً بوحدات Python الخارجية التالية:
pip3 install colorama pltable
ملاحظة: قد تكون بعض الصور قديمة وتصور إصدارات أقدم من MC Extractor.


















