Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-56426 — CVE-2024-56426 Exploit Bootrom Exynos9830 - SM-G985F | Kitploit
Strumenti/GitHubGitHub/xcracker000/cve-2024-56426
Sicurezza AndroidSicurezza Sistemi EmbeddedExploitReverse EngineeringHacking HardwareSicurezza MobileSicurezza HardwareSviluppo PayloadAnalisi del FirmwareBinary Exploitation
GitHub
41271 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
xcracker000/cve-2024-56426

CVE-2024-56426

CVE-2024-56426 Exploit Bootrom Exynos9830 - SM-G985F

Vedi Repository

SM-G985F / Exynos9830 Bootrom exploit

[!CAUTION] Il bundle di chiavi attuale e i file generati sono in grado di eseguire il fusing. Una volta eseguito il fusing su un dispositivo, la modifica dell'eFuse è irreversibile e il dispositivo deve continuare a utilizzare immagini di avvio e materiale chiave che corrispondano alla chiave fusa. L'utilizzo di questi file o flussi è a proprio rischio a causa del comportamento di fusing; tutte le conseguenze rimangono a carico dell'utente che li esegue. Verificare il file eFuse, le chiavi private, il FWBL1 firmato, le immagini LK / sboot.bin e il dispositivo di destinazione prima di eseguire qualsiasi flusso di fusing.

Indice

  • Layout del Repository
  • Requisiti
  • Preparazione delle Immagini
  • Build dei Payload
  • Generazione dell'Immagine SBoot Firmata
  • Modalità dell'Exploit
  • Catena di Avvio Exynos 9830
  • Layout delle Immagini Exynos 9830
  • Indirizzi di Caricamento
  • ID delle Sorgenti di Avvio
  • Payload Dump /mem
  • Attribuzione Upstream
  • Crediti

Layout del Repository

PathPurpose
bootLoaderFiles/Binari del bootloader, parti del bootloader suddivise, immagini originali, immagini decrittate e artefatti di dump.
bootromNotes/Note sulla Boot ROM, diagrammi di flusso e offset di contesto USB.
exploit/Strumenti Python, esecutore dell'exploit, script di split/merge, helper di build dei payload e dati SoC.
exploit/extra/images/Immagini del bootloader funzionanti utilizzate dai flussi dell'exploit.
exploit/extra/payloads/Binari dei payload compilati copiati da external/payloads/.
external/Sorgenti dei payload, Makefile di build, note decompilate, materiale chiave condiviso e strumenti helper.
external/keys/exynos9830_crecker/Bundle Exynos9830 / Exynos990 a chiave personalizzata condiviso utilizzato dal flusso signed-loader.
exynos990reverseEng/File del progetto di reverse engineering Exynos 990.

Requisiti

Toolchain Linux

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

Toolchain macOS

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

Dipendenze Python

python3 -m pip install -r requirements.txt

requirements.txt include coloredlogs, cryptography, hexdump, libusb, pyusb e pycryptodome.

Driver USB per Windows

Su Windows, il dispositivo USB 04e8:1234 della BootROM deve utilizzare un driver compatibile WinUSB/libusb prima che PyUSB possa aprirlo. Vedere exploit/windows/README.md.

Il repository include un pacchetto di driver WinUSB in exploit/windows/Exynos_USB_Device.inf, con il relativo catalogo e il file di importazione del certificato nella stessa directory.

Preparazione delle Immagini

Suddivisione di sboot.bin

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

Lo script di split scrive le parti delle immagini e un file split_manifest.json nella directory di output.

Patch della Chiave Personalizzata LK

L'immagine LK deve utilizzare gli ID comando della chiave 2 di avvio sicuro della ROM per il flusso a chiave personalizzata:

Comando chiave 1ValoreComando chiave 2Valore
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

Quando si applica il TSV di patch LK all'interno del progetto Ghidra, l'helper è stato richiamato tramite Ghidra headless in questo modo:

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"

Incorpora la chiave eFuse a 32 byte in lk.bin all'offset 0x205008, sostituendo la chiave di serie:

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

Unione delle Parti Suddivise

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

Lo script di merge scrive sboot.bin nella directory di lavoro corrente.

Build dei Payload

Compila i progetti dei payload in external/payloads/ e copia i binari risultanti in exploit/extra/payloads/:

./exploit/build_payloads.sh
PayloadOutput pathPurpose
mem.binexploit/extra/payloads/mem.binPayload per il dump della memoria della Boot ROM.
loader.binexploit/extra/payloads/loader.binPayload del percorso UFS utilizzato da --ufs.
Exynos990_boot_custom_key.binexploit/extra/payloads/Exynos990_boot_custom_key.binPayload signed-loader a chiave personalizzata utilizzato da --signed.

Il loader UFS e il payload a chiave personalizzata incorporano un file efuse a 32 byte al momento della build. Per impostazione predefinita il Makefile legge external/keys/exynos9830_crecker/crecker.efuse; sovrascrivi questo valore con CUSTOM_KEY_EFUSE=/path/to/crecker.efuse quando necessario.

Generazione dell'Immagine SBoot Firmata

La fase di preflight eseguita da exploit/exploit.py firma nuovamente il set di immagini SBoot in exploit/extra/images/ sul posto prima di ogni esecuzione firmata. Non viene conservato alcun output firmato separato. Il passaggio di firma utilizza il bundle di chiavi condivise volutamente tracciato in external/keys/exynos9830_crecker/.

Comando equivalente dalla radice del repository per il set completo di immagini:

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

Questo firma:

Scarica lo strumento