
منصة أبحاث أمن البرامج الثابتة تجمع بين تحليل الثنائيات، وتتبع التلوث، والمحاكاة عبر إنترنت الأشياء، والذكاء الاصطناعي الطرفي، والأجهزة المحمولة، والروبوتات.
تنزيل أحدث إصدار · سجل التغييرات · التثبيت
مجموعة أدوات تحليل البرامج الثابتة (Firmware Analysis Toolkit) هي مجموعة أدوات بحث أمني للتحقيق في أمن البرامج الثابتة لإنترنت الأشياء والذكاء الاصطناعي المادي والأجهزة المحمولة والروبوتات. وقد بُنيت بشكل أساسي من أجل تدريب "استغلال إنترنت الأشياء الهجومي" الذي تقدّمه Attify.
وقد بُنيت استنادًا إلى خبرة ميدانية عملية فعلية حول ما يهم حقًا عندما يتعلق الأمر بتحقيقات أمن البرامج الثابتة الحقيقية التي تهم.
هدف FAT ليس فقط بناء مجموعة أدوات استثنائية عالمية المستوى ومتطورة لأبحاث أمن البرامج الثابتة، بل أيضًا إعداد محترفين وممارسين يعملون في ذروة أدائهم، حيث تصبح الأداة قوة إدراكية خارقة إذا استُخدمت بطرق معينة، مع كونها سهلة بما يكفي ليستخدمها من هم جدد في هذا المجال.
تشمل بعض الميزات تصنيف البرامج الثابتة غير المعروفة، واستخراج أنظمة الملفات، ورسم خرائط الشيفرة ذات الصلة بالثقة، وتتبع التلوث، وتنسيق محاكاة QEMU.
نزّل حزمة ثنائية من الإصدارات، أو ابنِ أحدث إصدار منتظم باستخدام Rust 1.90 أو أحدث:
git clone --branch v2.0.1 --depth 1 https://github.com/attify/firmware-analysis-toolkit.git
cd firmware-analysis-toolkit
cargo build --release --locked
cargo install --path crates/fat_cli --locked
python3 scripts/build-runtime-data-bundle.py --output ./dist/fat-data.zip
fat data install --archive ./dist/fat-data.zip
fat doctor
على Arch Linux أو Omarchy، ابدأ بـ خطوات تثبيت Arch للحزم المطلوبة والأدوات الاختيارية.
مثبّت بضغطة واحدة للمضيفات المدعومة:
./scripts/install.sh --install-system-deps
راجع INSTALL.md لخيارات المثبّت والأدوات الاختيارية.
fat -hfat $firmware أو fat identify --file $firmwarefat new $firmwarefat extract $firmwarefat analyze $firmwarefat emulate --project $firmwarefat ./firmware.bin
fat inspect update --file ./firmware.bin --rootfs ./rootfs --reference ./older.bin
fat ./firmware.bin هو اختصار لـ fat identify --file ./firmware.bin.
يمنح نظرة عامة موجزة عن هوية الملف وبنيته.
أضف --details للحصول على الجداول الداعمة.
بالنسبة لصور MCU الخام، افحص التعيين، وبدء التشغيل، والمقاطعات، والعتاد:
fat inspect mcu --file ./firmware.bin
fat inspect mcu --file ./firmware.bin --details
يدعم كلا الأمرين --json للحصول على تقرير التحليل المنظم الكامل.
خط الأنابيب من البدء السريع، من البداية إلى النهاية:
fat new ./firmware.bin
fat extract .fat-projects/firmware
fat analyze .fat-projects/firmware
fat preflight .fat-projects/firmware
fat emulate --project .fat-projects/firmware
fat r2-triage --file ./usr/sbin/httpd --json
fat taint --file ./www/cgi-bin/diag.cgi --summary
fat taint-query --file ./www/cgi-bin/diag.cgi
fat taint-cross --rootfs ./rootfs
fat taint-cross --rootfs ./rootfs --source-profile ./my-target-models.yaml --state-profile ./my-target-state.yaml
fat taint --lang shell --file ./app/init/wifi.sh --summary
fat taint --lang shell --rootfs ./extracted-rootfs --json
fat taint --lang shell --rootfs ./extracted-rootfs --source-profile ./my-target-shell.yaml --severity high
ابحث عن المصارف بشكل ساكن، ثم جهّز خطافات وقت التشغيل لنفس العناوين:
fat r2-triage --file ./usr/sbin/httpd --json
fat sink-discovery --file ./usr/sbin/httpd --json > sinks.json
fat handler-table --file ./usr/sbin/httpd --json > handlers.json
fat taint --file ./usr/sbin/httpd --sink-candidates sinks.json --json > taint.json
fat instrument-hooks --from-sinks sinks.json --output hooks.yaml
fat emulate --project .fat-projects/firmware --instrument hooks.yaml
fat tree --rootfs ./rootfs --profile inventory --summary --json
fat search --rootfs ./rootfs --profile credentials -I --context 2
fat startup-map --rootfs ./rootfs --profile cloud-tls
fat crypto-census --rootfs ./rootfs
fat trust-map --rootfs ./rootfs
fat invariant query \
--fixture tests/fixtures/query/source/invariant-permission \
--rule 'Every privileged override method must call enforcePermission()'
fat patch check --help
fat verify --help
| المستند | ما يحتويه؟ |
|---|---|
| INSTALL.md | الأدوات الخارجية وإعداد المكونات الاختيارية |
| docs/commands.md | مرجع الأوامر الكامل، مجمّعًا حسب المهمة |
| docs/capabilities.md | تصدير الرسوم البيانية، والبحث النصي، والتشفير، والذكاء الاصطناعي الطرفي، ونية بدء التشغيل، وحزم إعادة الاستضافة |
| docs/epistemics.md | كيفية قراءة مخرجات FAT: ما الذي تثبته النتائج وما لا تثبته |
| docs/architecture.md | حزم مساحة العمل ونقاط التوسعة |
| DEVELOPMENT.md | سير عمل البناء والاختبار |
| CONTRIBUTING.md | الإعداد، وقائمة فحص طلبات السحب، ودليل المساهمة |
| RELEASING.md | تسمية الإصدارات وسير عمل إصدار المشرفين |
إذا استخدمت FAT في البحث أو المنشورات أو التقارير التقنية، فيرجى الاستشهاد به باستخدام خيار Cite this repository على GitHub. أدرج إصدار FAT أو الالتزام (commit) المستخدم حتى يتمكن القراء من تحديد التنفيذ الذي تقف خلفه نتائجك. راجع CITATION.cff للحصول على بيانات الاستشهاد الوصفية.