
بيت هندسة البرامج الثابتة لمشروع شارة Cryptohack الإلكترونية.
محفظة عملات مشفرة عتادية شبه آمنة وصديقة للهاكرز على منصة hip-badge ESP32-C3 مع عنصر الأمان المدمج ATECC608B. توقّع المعاملات لـ BTC وETH (+ 8 سلاسل EVM) وSOL وXMR عبر شاشة SIGN على الجهاز يجب على المستخدم الموافقة عليها قبل أن يلمس أي مفتاح خاص الرسالة.
firmware/badge/ runtime wallet
firmware/factory/ one-shot provisioning firmware + host driver
ref/ gitignored — clone upstream schematics here
⚠ قم بوميض البرنامج الثابت للمصنع أولاً على شارة جديدة. تتوقع محفظة وقت التشغيل أن يكون ATECC608B مهيأً (مفاتيح الفتحات محمّلة، ومنطقة التكوين مضبوطة) ولن تفتح بذرة PIN المغلّفة بدون ذلك. الترتيب هو: بناء المصنع → وميض المصنع → تشغيل برنامج التشغيل المضيف (
factory_provision.py) → بناء وقت التشغيل → وميض وقت التشغيل. تخطَّ خطوة المصنع وستحصل على فشل في تهيئة SE وتوقف في الإقلاع عند شاشة البداية. راجعdocs/TOOLS.md§ توفير المصنع للحصول على شرح برنامج التشغيل المضيف.
# Activate ESP-IDF in this shell (see firmware/BUILDING.md for install)
. ~/esp/esp-idf/export.sh # or export.ps1 on Windows
# 1. Factory provision (one-time per badge)
cd firmware/factory
idf.py -B build -p $PORT build flash monitor
# (in another shell) cd firmware/factory/tools && \
# uv run --with pyserial --with cbor2 factory_provision.py --port $PORT
# 2. Build + flash the runtime (do this AFTER factory)
cd ../badge
export SDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.dev"
idf.py -B build_dev -p $PORT build flash monitor
دليل كامل (Linux / macOS / Windows): firmware/BUILDING.md.
لتجهيز شارة جديدة أو إعادة إنتاج مجموعة الاختبارات: docs/TOOLS.md.
| اقرأ هذا | إذا كنت تريد… |
|---|---|
firmware/BUILDING.md | تثبيت ESP-IDF وبرمجة الجهاز لأول مرة |
docs/ARCHITECTURE.md | فهم كيفية عمل المحفظة — المكوّنات، مناطق الثقة، مسار التوقيع |
docs/TOOLS.md | تشغيل برنامج تشغيل المضيف لتجهيز المصنع أو اختبارات التوقيع لكل عملة |
docs/VERIFY.md | تشغيل فحص التحقق قبل / بعد التغييرات الجوهرية |
docs/PLAN.md | قراءة مواصفات الأمان الشاملة — مراسم KEK، خرائط الفتحات، مسارات الاسترداد |
docs/CODE_STYLE.md | تقديم PR يتوافق مع اصطلاحات المشروع |
CONTRIBUTING.md | فتح PR (التفريع، الالتزامات، توقعات المراجعة) |
TODO.md | العثور على شيء للعمل عليه أو التحقق مما تم شحنه بالفعل |
CLAUDE.md | إحاطة مساعد ذكاء اصطناعي (Claude، Cursor، إلخ) بالمشروع |
| النوع | eFuse | الاستخدام | قابل لإعادة البرمجة؟ |
|---|---|---|---|
dev | افتراضي (flash) | التكرار اليومي | نعم، دائمًا |
stage | حقيقي، غير مقفل | اختبار السيليكون من طرف إلى طرف | نعم، حتى تقفله |
prod | حقيقي، مقفل | جهاز مشحون، Secure Boot V2 | لا |
مختلط:
firmware/badge/components/trezor-crypto/ — MIT (مضمّن من Trezor)firmware/badge/components/tinycbor/ — MIT (Intel)firmware/badge/components/qrcodegen/ — MIT (Project Nayuki)firmware/badge/main/ (يمتد hip-badge blinkenlights/) — GPL-2.0-or-later