Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-56426 — CVE-2024-56426 Exploit do Bootrom Exynos9830 - SM-G985F | Kitploit
Ferramentas/GitHubGitHub/xcracker000/cve-2024-56426
Segurança AndroidSegurança de Sistemas EmbarcadosExploraçãoEngenharia ReversaHacking de HardwareSegurança MóvelSegurança de HardwareDesenvolvimento de PayloadsAnálise de FirmwareExploração de Binários
GitHub
4127há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
xcracker000/cve-2024-56426

CVE-2024-56426

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

Ver Repositório

Exploit da BootROM do SM-G985F / Exynos9830

[!CAUTION] O pacote de chaves atual e os arquivos gerados são capazes de fusing. Depois que um dispositivo é submetido ao fusing, a alteração do eFuse é irreversível e o dispositivo deve continuar a usar imagens de boot e material de chaves que correspondam à chave gravada. O uso desses arquivos ou fluxos é por sua conta e risco por causa do comportamento de fusing; todas as consequências permanecem sob responsabilidade do usuário que os executa. Verifique o arquivo eFuse, as chaves privadas, o FWBL1 assinado, as imagens LK / sboot.bin e o dispositivo de destino antes de executar qualquer fluxo de fusing.

Conteúdo

  • Estrutura do Repositório
  • Requisitos
  • Preparação das Imagens
  • Compilação do Payload
  • Geração da Imagem SBoot Assinada
  • Modos de Exploit
  • Cadeia de Boot do Exynos 9830
  • Layout da Imagem do Exynos 9830
  • Endereços de Carga
  • IDs de Fonte de Boot
  • Payload de Dump /mem
  • Atribuição Upstream
  • Créditos

Estrutura do Repositório

CaminhoFinalidade
bootLoaderFiles/Binários do bootloader, partes do bootloader divididas, imagens originais, imagens descriptografadas e artefatos de dump.
bootromNotes/Notas da ROM de boot, fluxogramas e offsets de contexto USB.
exploit/Ferramentas Python, executor de exploit, scripts de divisão/mesclagem, auxiliar de compilação de payload e dados do SoC.
exploit/extra/images/Imagens de bootloader funcionais consumidas pelos fluxos de exploit.
exploit/extra/payloads/Binários de payload compilados copiados de external/payloads/.
external/Fontes do payload, Makefile de compilação, notas decompiladas, material de chaves compartilhado e ferramentas auxiliares.
external/keys/exynos9830_crecker/Pacote de chave personalizada compartilhado do Exynos9830 / Exynos990 usado pelo fluxo de carregador assinado.
exynos990reverseEng/Arquivos do projeto de engenharia reversa do Exynos 990.

Requisitos

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

Dependências Python

python3 -m pip install -r requirements.txt

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

Driver USB no Windows

No Windows, o dispositivo 04e8:1234 da BootROM deve usar um driver compatível com WinUSB/libusb antes que o PyUSB possa abri-lo. Consulte exploit/windows/README.md.

O repositório inclui um pacote de driver WinUSB em exploit/windows/Exynos_USB_Device.inf, com seu catálogo correspondente e o arquivo de importação de certificado no mesmo diretório.

Preparação das Imagens

Dividir sboot.bin

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

O script de divisão grava as partes da imagem e um arquivo split_manifest.json no diretório de saída.

Aplicar patch de chave personalizada no LK

A imagem do LK deve usar os IDs de comando da chave 2 de boot seguro da ROM para o fluxo de chave personalizada:

Comando da chave 1ValorComando da chave 2Valor
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

Ao aplicar o TSV de patch do LK dentro do projeto Ghidra, o auxiliar foi chamado por meio do Ghidra headless da seguinte forma:

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"

Insira a chave eFuse de 32 bytes em lk.bin no offset 0x205008, substituindo a chave original:

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

Mesclar Partes Divididas

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

O script de mesclagem grava sboot.bin no diretório de trabalho atual.

Compilação do Payload

Compile os projetos de payload em external/payloads/ e copie os binários resultantes em exploit/extra/payloads/:

./exploit/build_payloads.sh
PayloadCaminho de saídaFinalidade
mem.binexploit/extra/payloads/mem.binPayload de dump de memória da ROM de boot.
loader.binexploit/extra/payloads/loader.binPayload do caminho UFS usado por --ufs.
Exynos990_boot_custom_key.binexploit/extra/payloads/Exynos990_boot_custom_key.binPayload de carregador assinado com chave personalizada usado por --signed.

O carregador UFS e o payload de chave personalizada incorporam um arquivo efuse de 32 bytes no momento da compilação. Por padrão, o Makefile lê external/keys/exynos9830_crecker/crecker.efuse; substitua isso por CUSTOM_KEY_EFUSE=/path/to/crecker.efuse quando necessário.

Geração da Imagem SBoot Assinada

A etapa de pré-verificação executada por exploit/exploit.py reassina o conjunto de imagens SBoot em exploit/extra/images/ no próprio local antes de cada execução assinada. Nenhuma saída assinada separada é mantida. A etapa de assinatura usa o pacote de chaves compartilhado intencionalmente rastreado em external/keys/exynos9830_crecker/.

Comando equivalente na raiz do repositório para o conjunto completo de imagens:

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

Isto assina:

Baixar ferramenta