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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-56426 — حزمة استغلال لـ bootROM الخاص بـ Exynos 9830 توفّر تجاوز التمهيد الموقّع، وحقن مفاتيح مخصصة، وحمولات تفريغ الذاكرة لأجهزة Samsung SM-G985F. | Kitploit
أدوات/GitHubGitHub/xcracker000/cve-2024-56426
أمان أندرويدأمان الأنظمة المدمجةالاستغلالالهندسة العكسيةاختراق الأجهزةأمن الجوالأمن الأجهزةتطوير الحمولاتتحليل البرامج الثابتةاستغلال الملفات الثنائية
GitHubxcracker000/cve-2024-56426

CVE-2024-56426

1منذ 5 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

حزمة استغلال لـ bootROM الخاص بـ Exynos 9830 توفّر تجاوز التمهيد الموقّع، وحقن مفاتيح مخصصة، وحمولات تفريغ الذاكرة لأجهزة Samsung 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

root@kitploit:~
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

سلسلة أدوات macOS

root@kitploit:~
brew tap messense/macos-cross-toolchains
brew install aarch64-unknown-linux-gnu

تبعيات Python

root@kitploit:~
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

root@kitploit:~
python3 exploit/split.py bootLoaderFiles/originalSboot_K/sboot.bin -o exploit/extra/images

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

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

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

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

root@kitploit:~
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، لاستبدال المفتاح الأصلي:

root@kitploit:~
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

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

root@kitploit:~
python3 exploit/merge.py exploit/extra/images Exynos9830

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

بناء الحمولة

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

root@kitploit:~
./exploit/build_payloads.sh

يقوم محمّل 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/.

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

root@kitploit:~
python3 external/tools/sign_sboot_images.py \
  --images-dir exploit/extra/images \
  --keys-dir external/keys/exynos9830_crecker

يوقّع هذا:

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

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

أمر FWBL1 فقط هو:

root@kitploit:~
python3 external/tools/sign_tool.py \
  -i exploit/extra/images/fwbl1.img \
  -o exploit/extra/images/fwbl1.img \
  -k external/keys/exynos9830_crecker/crecker_private.pem \
  -H external/keys/exynos9830_crecker/crecker.hmac \
  -s 0x3000 \
  -r 23 \
  -ma 0x9830 \
  -m 0x142 \
  -e 11 \
  -t external/keys/exynos9830_crecker/crecker_stage2_tee_pubkey.bin \
  -re external/keys/exynos9830_crecker/crecker_stage2_ree_pubkey.bin

الصيغة المختصرة عندما تكون sign_tool.py وfwbl1.img وملفات crecker_* موجودة في الدليل الحالي:

root@kitploit:~
python3 sign_tool.py -i fwbl1.img -o fwbl1.img -k crecker_private.pem -H crecker.hmac -s 0x3000 -r 23 -ma 0x9830 -m 0x142 -e 11 -t crecker_stage2_tee_pubkey.bin -re crecker_stage2_ree_pubkey.bin

أوضاع الاستغلال

نفّذ الأوامر من جذر المستودع ما لم يُذكر خلاف ذلك.

ملاحظات تدفق الجهاز

سلسلة إقلاع Exynos 9830

إجراء الإقلاع المرصود لـ Exynos 9830 هو:

تخطيط صور Exynos 9830

عناوين التحميل

معرفات مصدر الإقلاع

معرفات مصدر الإقلاع الخام

قيم مصدر الإقلاع

حمولة تفريغ /mem

ملاحظة: لا يمكن استخدام حمولة التفريغ mem.bin إلا عندما لا يكون هناك sboot يعمل مثبتًا.

  1. أرسل uh.bin عبر Heimdall إلى محمّل الإقلاع:

    root@kitploit:~
    heimdall flash --BOOTLOADER uh.bin
    
  2. شغّل تدفق التفريغ:

    root@kitploit:~
    python3 exploit/exploit.py --dump
    
  3. راجع ملف التفريغ المُنشأ exynos990.bootrom.bin.

الإسناد إلى المصادر العلوية

تم اقتباس أجزاء من أدوات الاسترداد المكتوبة بلغة Python في هذا المستودع من halal-beef/hubble.

هذا المشروع العلوي منشور بموجب GNU GPL v2.0، ويحتفظ هذا المستودع برخصة GPL-2.0 للتوافق. راجع LICENSE وNOTICE.md.

حمولة المفتاح المخصص لـ Exynos990 الموجودة تحت external/payloads/exynos990_boot_custom_key/ مبنية على الهيكل العظمي لحمولة مفتاح الإقلاع المخصص وفكرة تدفق التحكم من VDavid003/exynos-usbdl، وهو فرع من frederic/exynos-usbdl. وقد أُعيدت كتابتها وتكييفها بشكل جوهري لسلسلة GET_CONFIGURATION الخاصة بـ Exynos9830 / Exynos990، وهي ليست نسخة حرفية من الحمولة العلوية. نظرًا لأن المشروع العلوي المُشار إليه مرخّص بموجب GNU GPL v3.0، فإن هذه الحمولة محفوظة بموجب GPL-3.0-only؛ راجع external/payloads/exynos990_boot_custom_key/LICENSE.

الاعتمادات

تنزيل الأداة
أمر المفتاح 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
الحمولةمسار الإخراجالغرض
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.
الصورةمادة المفتاح المستخدمةمراجعة التراجع
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
الأمرالوضعالحمولة الافتراضيةملاحظات
python3 exploit/exploit.py --ufsمسار UFSloader.binيبدأ تدفق حمولة UFS.
python3 exploit/exploit.py --signedسلسلة الإقلاع الموقعةExynos990_boot_custom_key.binيعيد توقيع مجموعة صور SBoot ويرسل الصور.
python3 exploit/exploit.py --dumpتفريغ Boot ROMmem.binيستقبل 0x20000 بايت في exynos990.bootrom.bin.
الخطوةالملاحظة
1أدخل وضع التنزيل (download mode).
2أنشئ أو حدّث sboot.bin باستخدام exploit/merge.py عند الحاجة.
3استخدم تدفق المفتاح المخصص الموقّع للوصول إلى وضع Crecker، وهو وضع بنمط ODIN يقبل تدفق الصورة الهدف.
4أرسل sboot.bin الجديد عبر ODIN أو Heimdall أو أي مرسل متوافق آخر.
5شغّل حمولة UFS.
6اختياري: ثبّت CreckerRom لسير عمل One UI 7 وStrong Integrity.
7اختياري: اقفل محمّل الإقلاع بعد اكتمال إعداد الهدف.
الخطوةالمرحلةالملاحظات
1BootROMتنفيذ ROM الأولي.
2BL1تسليم كامل من BootROM.
3EPBLتسليم كامل من BL1.
4EPBLيُعدّ معالج SMC أدنى (minimal).
5BL2EPBL يحمّل BL2.
6BL2تسليم جزئي إلى BL2.
7LKيستخدم BL2 أداة EPBL لتحميل LK، لكن LK لا يُنفَّذ فورًا.
8EL3 Monitorيستخدم BL2 أداة EPBL لتحميل EL3 Monitor.
9EL3 Monitorيفك EPBL تشفير EL3 Monitor.
10EL3 Monitorتسليم كامل إلى EL3 Monitor.
11EL3 Monitorيهيئ ويُعدّ معالج SMC الموسّع.
12LKينتقل التنفيذ إلى LK.
13LK / EL3 Monitorيستدعي LK معالج SMC الخاص بـ EL3 Monitor لتحميل أجزاء TrustZone.
14ODIN / الهدف المخصصيستمر الإقلاع إلى ODIN أو الهدف المُهيأ.
الجزءالبدايةالنهاية
fwbl1.img0x00x3000
epbl.img0x30000x16000
bl2.img0x160000x82000
lk.bin0xDB0000x35B000
el3_mon.img0x35B0000x39B000
المرحلةعنوان التحميل
BL10x02022000
EPBL0x02026000
BL20x15600000
LK0xE8000000
EL3_MONITOR0xBFE80000
معرف مصدر _boot_deviceمسار مصدر الإقلاع
1مسار UFS، تدفق تحميل UFS المشترك.
2مسار تهيئة eMMC/SDMMC، تدفق mmc_card_detect_and_init.
3جهاز SDMMC/MMC 0، mmc_read_blocks(0, ...).
4مسار تحميل USB.
5جهاز SDMMC/MMC 1، mmc_read_blocks(1, ...).
6وضع UFS البديل، نفس تدفق UFS الأساسي للمعرّف 1 مع علامة وضع مختلفة.
7مسار قراءة وحدة التحكم الخام غير MMC/UFS/USB.
0xB / 11مسار USB الاحتياطي، ثم نفس معالج USB للمعرّف 4.
معرف المصدرالقيمةالمعنى
10x20UFS
20x14eMMC
30x00SDMMC_CH2
4 / 0xB0x40USB
المُساهِمالمساهمة
Chimera Toolالاكتشاف الأول للاستغلال حوالي 2021-2022. توفر Chimera قدرات متقدمة لخدمة معالجات Exynos عبر العديد من الأجهزة، بما في ذلك قدرات مبنية على هذا الاستغلال.
CVE-2024-56426ثغرة CVE التي يستند إليها هذا المشروع.
Christopher Wadeأبلغ Samsung بثغرة CVE-2024-56426.
kethily-danielوفّر الوصول إلى الأداة المستخدمة لتتبع حزم USB واستخراج العينات.
BotchedRPRساعد في البحث الأولي وإنشاء carte2.
VDavid003ساعد في الهندسة العكسية لـ PoC عبر تفريغات الحزم واختبرها شخصيًا على الأجهزة.
halal-beef / hubbleوفّر تفريغات حزم USB الأولية وتحليل PoC خلال دورة البحث، والكود الخلفي المستخدم في سكربت الاستغلال، وتخطيطات SoC المستخدمة في سكربتي التقسيم والدمج.
VDavid003 / exynos-usbdlوفّر الهيكل العظمي لحمولة المفتاح المخصص بموجب GPLv3 وتدفق تنزيل USB المرجعي لـ Exynos المستخدم كأساس لحمولة المفتاح المخصص لـ Exynos990.
R0rt1z2ساعد في إنشاء الحمولة؛ بعض العمل كان مبنيًا على مشروعه kaeru.
AntiEngineerشارك معرفة ARM وتلميحات ودعمًا بحثيًا.
AAإلهام الثغرة وأول استخدام خارج Chimera.