Skip to content
KitploitKITPLOIT
أدواتالمدونة
Log in
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-56426 — # استغلال Bootrom لمعالج Exynos9830 - CVE-2024-56426 - SM-G985F | Kitploit
أدوات/GitHubGitHub/xcracker000/cve-2024-56426
أمان أندرويدأمان الأنظمة المدمجةالاستغلالالهندسة العكسيةاختراق الأجهزةأمن الجوالأمن الأجهزةتطوير الحمولاتتحليل البرامج الثابتةاستغلال الملفات الثنائية
GitHubxcracker000/cve-2024-56426
4127منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2024-56426

# استغلال Bootrom لمعالج Exynos9830 - CVE-2024-56426 - SM-G985F

عرض المستودع

استغلال Bootrom لجهاز SM-G985F / معالج Exynos9830

[!CAUTION] حزمة المفاتيح الحالية والملفات المُنشأة قادرة على الحرق (fusing-capable). بمجرد حرق جهاز ما، يكون تغيير eFuse غير قابل للتراجع، ويجب أن يستمر الجهاز في استخدام صور الإقلاع ومواد المفاتيح المطابقة للمفتاح المَحروق. استخدام هذه الملفات أو التدفقات على مسؤوليتك الخاصة بسبب سلوك الحرق؛ تظل جميع العواقب مسؤولية المستخدم الذي يشغّلها. تحقق من ملف eFuse، والمفاتيح الخاصة، وصور FWBL1 الموقعة، وLK / sboot.bin، والجهاز الهدف قبل تشغيل أي تدفق حرق.

المحتويات

  • تخطيط المستودع
  • المتطلبات
  • تجهيز الصور
  • بناء الحمولة
  • توليد صورة SBoot الموقعة
  • أوضاع الاستغلال
  • سلسلة إقلاع Exynos 9830
  • تخطيط صور Exynos 9830
  • عناوين التحميل
  • معرفات مصدر الإقلاع
  • حمولة تفريغ /mem
  • الإسناد إلى المصادر العلوية
  • الاعتمادات

تخطيط المستودع

المسارالغرض
bootLoaderFiles/ثنائيات محمّل الإقلاع، وأجزاء محمّل الإقلاع المقسمة، والصور الأصلية، والصور المفكوك تشفيرها، ومخرجات التفريغ.
bootromNotes/ملاحظات Boot ROM، والمخططات الانسيابية، وإزاحات سياق USB.
exploit/أدوات Python، ومشغّل الاستغلال، وسكربتات التقسيم/الدمج، ومساعد بناء الحمولة، وبيانات SoC.
exploit/extra/images/صور محمّل إقلاع صالحة للعمل تستهلكها تدفقات الاستغلال.
exploit/extra/payloads/ثنائيات الحمولة المبنية المنسوخة من external/payloads/.
external/مصادر الحمولات، وملف Makefile للبناء، وملاحظات مفكوكة، ومواد مفاتيح مشتركة، وأدوات مساعدة.
external/keys/exynos9830_crecker/حزمة المفاتيح المخصصة المشتركة لـ Exynos9830 / Exynos990 المستخدمة في تدفق المحمّل الموقّع.
exynos990reverseEng/ملفات مشروع الهندسة العكسية لمعالج Exynos 990.

المتطلبات

سلسلة أدوات Linux

sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

سلسلة أدوات macOS

brew tap messense/macos-cross-toolchains
brew install aarch64-unknown-linux-gnu

تبعيات Python

python3 -m pip install -r requirements.txt

يتضمن requirements.txt الحزم coloredlogs وcryptography وhexdump وlibusb وpyusb وpycryptodome.

برنامج تشغيل USB لنظام Windows

في نظام Windows، يجب أن يستخدم جهاز BootROM USB ذو المعرّف 04e8:1234 برنامج تشغيل متوافقًا مع WinUSB/libusb قبل أن يتمكن PyUSB من فتحه. راجع exploit/windows/README.md.

يتضمن المستودع حزمة برنامج تشغيل WinUSB في exploit/windows/Exynos_USB_Device.inf، مع ملف الفهرس (catalog) وملف استيراد الشهادة المطابقين لها في نفس الدليل.

تجهيز الصور

تقسيم sboot.bin

python3 exploit/split.py bootLoaderFiles/originalSboot_K/sboot.bin -o exploit/extra/images

يكتب سكربت التقسيم أجزاء الصور وملف split_manifest.json في دليل الإخراج.

رقعة المفتاح المخصص لـ LK

يجب أن تستخدم صورة LK معرّفات أوامر مفتاح الإقلاع الآمن 2 الخاصة بـ ROM لتدفق المفتاح المخصص:

أمر المفتاح 1القيمةأمر المفتاح 2القيمة
CMD_W_ROM_SEC_BOOT_KEY10x001CMD_W_ROM_SEC_BOOT_KEY20x016
CMD_W_USE_ROM_SEC_BOOT_KEY10x002CMD_W_USE_ROM_SEC_BOOT_KEY20x017
CMD_C_ROM_SEC_BOOT_KEY10x100CMD_C_ROM_SEC_BOOT_KEY20x114
CMD_R_USE_ROM_SEC_BOOT_KEY10x101CMD_R_USE_ROM_SEC_BOOT_KEY20x115

عند تطبيق ملف TSV الخاص برقعة LK داخل مشروع Ghidra، تم استدعاء المساعد عبر Ghidra بدون واجهة (headless) على النحو التالي:

GHIDRA=/path/to/ghidra_12.0.4_PUBLIC
REPO=$(pwd)
"$GHIDRA/support/analyzeHeadless" "$REPO/exynos990reverseEng" exynos990 \
  -process lk.bin \
  -noanalysis \
  -scriptPath "$REPO/external/ghidra" \
  -postScript ApplyLkPatches.java "$REPO/external/ghidra/lk_985_selected_patches.tsv"

ضمّن مفتاح eFuse ذا الـ 32 بايت في lk.bin عند الإزاحة 0x205008، لاستبدال المفتاح الأصلي:

dd if=external/keys/exynos9830_crecker/crecker.efuse of=exploit/extra/images/lk.bin bs=1 seek=$((0x205008)) count=32 conv=notrunc
xxd -g1 -s $((0x205008)) -l 32 exploit/extra/images/lk.bin

دمج الأجزاء المقسمة

python3 exploit/merge.py exploit/extra/images Exynos9830

يكتب سكربت الدمج ملف sboot.bin في دليل العمل الحالي.

بناء الحمولة

ابنِ مشاريع الحمولات الموجودة تحت external/payloads/ وانسخ الثنائيات الناتجة إلى exploit/extra/payloads/:

./exploit/build_payloads.sh
الحمولةمسار الإخراجالغرض
mem.binexploit/extra/payloads/mem.binحمولة تفريغ ذاكرة Boot ROM.
loader.binexploit/extra/payloads/loader.binحمولة مسار UFS المستخدمة بواسطة --ufs.
Exynos990_boot_custom_key.binexploit/extra/payloads/Exynos990_boot_custom_key.binحمولة المحمّل الموقّع بالمفتاح المخصص المستخدمة بواسطة --signed.

يقوم محمّل UFS وحمولة المفتاح المخصص بتضمين ملف efuse بحجم 32 بايت وقت البناء. افتراضيًا، يقرأ ملف Makefile الملف external/keys/exynos9830_crecker/crecker.efuse؛ ويمكن تجاوز هذا الأمر بتحديد CUSTOM_KEY_EFUSE=/path/to/crecker.efuse عند الحاجة.

توليد صورة SBoot الموقعة

تعيد خطوة الفحص المسبق التي يشغّلها exploit/exploit.py توقيع مجموعة صور SBoot في exploit/extra/images/ في مكانها قبل كل تشغيل موقّع. لا يتم الاحتفاظ بأي ناتج موقّع منفصل. تستخدم خطوة التوقيع حزمة المفاتيح المشتركة المتعقبة عمدًا تحت external/keys/exynos9830_crecker/.

الأمر المكافئ من جذر المستودع لمجموعة الصور الكاملة:

python3 external/tools/sign_sboot_images.py \
  --images-dir exploit/extra/images \
  --keys-dir external/keys/exynos9830_crecker

يوقّع هذا:

الصورةمادة المفتاح المستخدمةمراجعة التراجع
fwbl1.imgالمفتاح الخاص لـ BL1 + المفاتيح العامة لـ Stage2 TEE/REE23
epbl.imgالمفتاح الخاص لـ Stage2 TEE23
bl2.imgالمفتاح الخاص لـ Stage2 REE23
lk.binالمفتاح الخاص لـ Stage2 REE23
el3_mon.imgالمفتاح الخاص لـ Stage2 TEE23
ldfw.imgالمفتاح الخاص لـ Stage2 TEE، داخلي + خارجي23
tzsw.imgالمفتاح الخاص لـ Stage2 TEE، داخلي + خارجي23

يمرر مُوقّع الدفعات القيمة العشرية 23 لكل صورة ولا يعيد استخدام قيمة تراجع أقدم موجودة بالفعل في تذييل قائم.

يُعاد تشفير epbl.img أولاً عند الحاجة، ثم يُوقَّع على البايتات النهائية. لا يزال ldfw.img وtzsw.img يحتاجان إلى تدفق AVB الخارجي إذا كان المقصود تحديث محتوى AVB الخاص بهما.

أمر FWBL1 فقط هو:

تنزيل الأداة