إذا اشتغلت بمجال الهندسة العكسية أو حتى مجرد حاب تستكشف شنو داخل ملفات الفيرموير (Firmware)، فأكيد سمعت أو راح تسمع عن أداة اسمها Binwalk. أداة بسيطة بس قوية، وتستخدم بكثرة لتحليل واستخراج المحتوى من الملفات الثنائية (binary files).
شنو هي Binwalk؟
هي أداة مفتوحة المصدر، تنكتب بلغة Python، وتُستخدم لتحليل واستخراج الملفات والأنظمة المضمنة داخل ملفات الباينري — وخصوصًا الفيرموير. يعني إذا عندك ملف فيرموير لجهاز راوتر مثلاً، وتحب تشوف شنو داخله.
شنو تگدر تسوي بيها؟
- ملفات مضغوطة (gzip, lzma, zip…)
- أنظمة ملفات (file systems) مثل SquashFS أو JFFS2
- صور (images)
- سكربتات أو كود
- شفرات bootloader
- وأي signature معروف داخل الباينري
يعني تكدر تتعامل ويا Binwalk مثل المجهر، تكشف بيه شنو مخفي بالملف.
طريقة التثبيت:
إذا تستخدم توزيعة Linux:
sudo apt update
sudo apt install binwalk
أو إذا تحب الطريقة اليدوية من GitHub:
git clone https://github.com/ReFirmLabs/binwalk
cd binwalk
sudo python3 setup.py install
استخدامات أساسية:

1. فحص محتوى الملف
binwalk firmware.bin
هالأمر راح يطّلعلك شنو موجود داخل الملف بشكل جدول يحتوي على نوع البيانات، الأوفست (الموقع داخل الملف)، والمعلومات الأساسية عنها.

2. استخراج الملفات تلقائيًا:
binwalk -e firmware.bin --run-as=root
هذا يسوي استخراج تلقائي لأي شي يحصله (صور، ملفات، أنظمة ملفات...). راح يطلع مجلد اسمه _firmware.bin.extracted
.
3. استخراج عميق (Recursive Extraction)
binwalk -Me firmware.bin --run-as=root
هالأمر يكشف الملفات اللي داخل الملفات، ويكمل يفتحها الى أن يوصل للطبقة الأخيرة. مفيد خصوصًا للفيرموير المعقد.
فكرة الأداة؟
تشتغل عن طريق تحليل signatures للملفات داخل الباينري، وتستخدم قاعدة بيانات داخلية تحتوي على أنواع مختلفة من التواقيع، مثل ملفات الصور، الأرشيفات، أو حتى bootloaders. ولهذا تگدر تكشف أنواع مختلفة من البيانات بسهولة.
شنو فائدتها بالهندسة العكسية؟
- تفحص فيرموير جهاز معين (كاميرا مراقبة، راوتر...)
- تستخرج الملفات المهمة: سكربتات init، ملفات config، ملفات shadow/passwd
- تكدر تشوف هل النظام بيه ثغرات؟ كلمة سر مشفّرة؟ باك دور؟
- وبعدها تستخدم أدوات ثانية مثل
strings
,hexdump
, أوGhidra
لفحص الملفات الباقية.