
تم التصدير تلقائيًا من code.google.com/p/firmware-mod-kit
تم التصدير تلقائياً من code.google.com/p/firmware-mod-kit
مجموعة تعديل البرامج الثابتة (Firmware Modification Kit)
هذه المجموعة عبارة عن مجموعة من البرامج النصية والأدوات لاستخراج وإعادة بناء صور البرامج الثابتة المستندة إلى لينكس.
استخراج صورة البرنامج الثابت إلى مكوناتها
يقوم المستخدم بإجراء التعديل المطلوب على نظام الملفات الخاص بالبرنامج الثابت أو واجهة الويب (webif)
إعادة بناء البرنامج الثابت
وميض البرنامج الثابت المعدّل على الجهاز وتحويله إلى طوبة (هاها)
تحذير: أنت على وشك تحويل جهازك إلى طوبة باستخدام هذه المجموعة (ربما لا، لكن من الأفضل القول إنك ستفعل). الطوبة تعني تحويل الجهاز بشكل فعال إلى 'طوبة' غير قابلة للتشغيل. يكون الاسترداد ممكنًا أحيانًا بدون تعديلات على الأجهزة. أحيانًا يتطلب تعديلات على الأجهزة (مثل رؤوس تسلسلية أو JTAG ملحومة على لوحة الدوائر المطبوعة). أحيانًا لا يكون ممكنًا، أو قد تكلفة الاسترداد الإجمالية أكثر من قيمة الوحدة.
لا تستخدم هذه المجموعة إذا لم تكن مستعدًا لتحويل جهاز التوجيه الخاص بك إلى طوبة!
اتفاقية ترخيص المستخدم النهائي (EULA): بتنزيلك أو استخدامك لهذه المجموعة، فإنك توافق على تحمل المسؤولية عن عواقب الاستخدام أو سوء الاستخدام لمجموعة تعديل البرامج الثابتة (Firmware Mod Kit). تشمل هذه العواقب تحويل جهازك إلى طوبة. لقد حذرك مؤلفو هذه المجموعة كما ينبغي. هذه المجموعة مخصصة فقط لمهندسي برمجيات الأنظمة المضمنة.
تسمح مجموعة تعديل البرامج الثابتة (Firmware Mod Kit) بفك وبناء صور البرامج الثابتة بسهولة لأجهزة مضمنة متنوعة. على الرغم من أنها تستهدف في المقام الأول أجهزة التوجيه المستندة إلى لينكس، إلا أنها يجب أن تكون متوافقة مع معظم البرامج الثابتة التي تستخدم تنسيقات وأنظمة ملفات شائعة مثل TRX/uImage و SquashFS/CramFS.
لاستخدام مجموعة تعديل البرامج الثابتة (Firmware Mod Kit)، يجب أن يكون لديك عميل subversion، وأدوات تطوير لينكس قياسية (gcc, make, إلخ)، ووحدة python-magic، وحزم تطوير zlib و lzma. إذا كنت تستخدم توزيعة لينكس تستخدم apt-get، مثل Ubuntu أو Debian، استخدم:
لـ Ubuntu 18.04 والإصدارات الأقدم:
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic autoconf
لـ Ubuntu 20.04 والإصدارات الأحدث:
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python3-magic autoconf python-is-python3
لـ RedHat:
yum groupinstall "Development Tools"
yum install git zlib1g-dev xz-devel python-magic zlib-devel util-linux
لـ Arch Linux:
يوجد حزمة AUR لـ https://aur.archlinux.org/packages/firmware-mod-kit/
للتوزيعات الأخرى، يجب عليك تثبيت الحزم المكافئة باستخدام مدير الحزم الخاص بتوزيعتك.
git clone https://github.com/rampageX/firmware-mod-kit.git
cd firmware-mod-kit/src
make
Binwalk 2.1.1
[العودة إلى دليل firmware-mod-kit]
cd src/binwalk-2.1.1
sudo python2 setup.py install
مجموعة تعديل البرامج الثابتة (Firmware Mod Kit) مدعومة فقط على منصة لينكس. مع بعض التعديلات الصغيرة، يجب أن تعمل على منصات POSIX الأخرى.
استنساخ مستودع مجموعة تعديل البرامج الثابتة (Firmware Modification Kit) باستخدام Git.
مجموعة تعديل البرامج الثابتة (Firmware Mod Kit) هي مجموعة من الأدوات والبرامج النصية. يمكن استخدام الأدوات مباشرة، أو يمكن استخدام البرامج النصية لأتمتة ودمج عمليات البرنامج الثابت الشائعة (مثل الاستخراج وإعادة البناء). البرامج النصية الأساسية لتسهيل عمليات البرنامج الثابت مذكورة أدناه.
البرامج النصية الرئيسية:
| البرنامج النصي | الوصف |
|---|---|
| extract-firmware.sh | برنامج استخراج البرنامج الثابت |
| build-firmware.sh | برنامج إعادة بناء البرنامج الثابت |
البرامج النصية الثانوية:
| ddwrt-gui-extract.sh | استخراج ملفات واجهة الويب من برنامج DD-WRT الثابت المستخرج. |
|---|---|
| ddwrt-gui-rebuild.sh | استعادة ملفات واجهة الويب المعدلة إلى برنامج DD-WRT الثابت المستخرج. |
تستخدم مجموعة تعديل البرامج الثابتة (Firmware Mod Kit) دليل عمل 'مشفر بشكل ثابت' باسم 'fmk'. يقوم برنامج الاستخراج بالاستخراج إلى هذا المجلد، ويقوم برنامج إعادة البناء بإعادة البناء من هذا المجلد. دعم أدلة العمل البديلة متاح لـ بعض العمليات، ولكن ليس كلها. سنقوم بتوسيع ذلك في المستقبل. في الوقت الحالي، إذا كان لديك أدلة عمل متعددة، نقترح عليك إعادة تسمية الأدلة التي لا تعمل عليها حاليًا.
يعمل استخراج البرنامج الثابت التلقائي عادةً مع معظم صور البرامج الثابتة التي تستخدم رؤوس uImage/TRX وتستخدم أنظمة ملفات SquashFS أو CramFS. حالياً، extract-firmware.sh هي الطريقة المفضلة للاستخراج لأنها تدعم أنواعًا أكثر من البرامج الثابتة مقارنةً بالبرنامج النصي الأقدم old-extract.sh. ومع ذلك، لا يزال old-extract.sh مضمنًا ويعمل مع العديد من تنسيقات البرامج الثابتة.
الاستخدام لكل من extract-firmware.sh و build-firmware.sh مباشر:
./extract-firmware.sh firmware.bin
افتراضيًا، سيكون الإخراج من extract-firmware.sh موجودًا في دليل 'fmk'، بينما سيضع old-extract.sh البيانات المستخرجة في دليل العمل المحدد.
يعتمد برنامج البناء الذي يجب استخدامه على برنامج الاستخراج المستخدم. إذا قمت باستخراج صورة برنامج ثابت باستخدام extract-firmware.sh، فيجب عليك استخدام build-firmware.sh لإعادة بنائها. بالمثل، إذا تم استخدام old-extract.sh، فيجب استدعاء old-build.sh عند إعادة بناء صورة:
./build-firmware.sh [-nopad] [-min]
سيكون موقع البرنامج الثابت الجديد الذي تم إنشاؤه بواسطة build-firmware.sh هو 'fmk/new-firmware.bin'، بينما سينشئ old-build.sh صور البرامج الثابتة بعدة تنسيقات مختلفة ويحفظها في دليل الإخراج المحدد.
سيؤدي المفتاح الاختياري -nopad إلى توجيه build-firmware.sh لعدم تبطين البرنامج الثابت إلى حجمه الأصلي.
سيستخدم المفتاح الاختياري -min الحد الأقصى لحجم كتلة squashfs البالغ 1 ميجابايت. سيؤدي ذلك إلى تقليل حجم صورة البرنامج الثابت على حساب موارد إضافية من وحدة المعالجة المركزية والذاكرة المستخدمة على الجهاز الهدف. لا تستخدم هذا المفتاح إلا إذا كان ذلك ضروريًا. هذا حجم كتلة كبير جدًا للأنظمة المضمنة. يتم الاحتفاظ بحجم كتلة squashfs الأصلي للبرنامج الثابت عند إعادة البناء، ويجب استخدام حجم الكتلة الأصلي إلا إذا كنت متأكدًا من أنك تعرف ما تفعله. قد يبدو حجم الكتلة الكبير جدًا يعمل بشكل جيد، لكن أداء وقت التشغيل للبرنامج الثابت قد يتأثر في جميع الأحمال أو بعضها.
إحدى الميزات الفريدة جدًا لمجموعة تعديل البرامج الثابتة (Firmware Mod Kit) هي قدرتها على استخراج وإعادة بناء الملفات من واجهة الويب الخاصة بـ DD-WRT. يتم أتمتة ذلك بواسطة البرامج النصية ddwrt-gui-extract.sh و ddwrt-gui-restore.sh.
بمجرد استخراج صورة برنامج ثابت لـ DD-WRT باستخدام extract-firmwware.sh، يمكنك استخراج ملفات الويب عن طريق تشغيل:
./ddwrt-gui-extract.sh
سيؤدي ذلك إلى إنشاء دليل باسم 'www' واستخراج ملفات الويب هناك. يمكنك تعديل الملفات كما تشاء، لكن لا يمكنك إضافة أو حذف الملفات.
عند الانتهاء من التحرير، يمكنك إعادة بناء ملفات الويب عن طريق تشغيل:
./ddwrt-gui-rebuild.sh
أحيانًا ستقوم بحماس وميض برنامج ثابت لطرف ثالث مثل Gargoyle أو DD-WRT لتكتشف أنه يفتقر إلى ميزات تحتاجها، أو لا يعمل بشكل جيد مثل برنامج البائع الثابت، أو به مشاكل وظيفية. في هذه الحالة، قد تجد نفسك تريد العودة إلى برنامج البائع الثابت، ولكن ليس لديك طريقة للقيام بذلك!
إليك كيف يمكن لمجموعة تعديل البرامج الثابتة (Firmware Mod Kit) مساعدتك في العودة إلى برنامج ثابت للبائع. العملية كالتالي: