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
spd_flasher — CVE-2022-38694 Exploit endurecido - Autoflasher USB Host para dispositivos Unisoc | Kitploit
Ferramentas/GitHubGitHub/leochen-coremind/spd_flasher
Segurança de Sistemas EmbarcadosExploraçãoEngenharia ReversaHacking de HardwareSegurança MóvelAprendizado e Educação
GitHubleochen-coremind/spd_flasher

spd_flasher

CVE-2022-38694 Exploit endurecido - Autoflasher USB Host para dispositivos Unisoc

Ver Repositório
3117há 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

Exploit Reforçado CVE-2022-38694 — Gravador Automático USB Host RP2350

中文版 README

Tutorial

  • Tutorial de Engenharia Reversa da Cadeia de Boot UDX710 e Boot Reforçado com RP2350

Explorando a vulnerabilidade CVE-2022-38694 do BootROM Unisoc via Raspberry Pi RP2350 USB Host para enviar automaticamente o SPL Loader na inicialização e iniciar um u-boot arbitrário.

Move a cadeia de exploração — originalmente exigindo um PC + spd_dump — para um microcontrolador RP2350. Conecte o dispositivo, grave automaticamente, suporta gravação contínua.

Como Funciona

CVE-2022-38694 é uma bypass de verificação de assinatura única no BootROM Unisoc. Ao enviar um exec stub para um endereço de memória específico, o endereço de retorno é sobrescrito, contornando as verificações de assinatura e permitindo que o BootROM aceite e execute FDL1 arbitrário.

Insight fundamental: FDL1 e SPL Loader compartilham o mesmo endereço de carga (0x28007000), portanto um SPL Loader corrigido pode ser enviado no lugar do FDL1, inicializando um u-boot arbitrário.

Processo de Reforço (Duas Etapas)

Etapa 1: Desbloqueio Inicial (PC + spd_dump)

A configuração inicial requer um PC com spd_dump:

┌──────────────────────────────────────────────────────────────────────────┐
│                    Stage 1: PC-side Initial Unlock                       │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  Step 1: Exploit CVE-2022-38694 to boot patched SPL                     │
│  ┌────────────┐    ┌────────────┐    ┌─────────────────┐                │
│  │ Exec Stub  │───►│ spl-unlock │───►│ Device boots    │                │
│  │ @0x3F28    │    │ @0x28007000│    │ into DL mode    │                │
│  └────────────┘    └────────────┘    └────────┬────────┘                │
│                                               │                          │
│  Step 2: Send patched FDL2 via spd_dump, flash u-boot without           │
│          secure boot, erase splloader                                    │
│                                               │                          │
│  ┌─────────────────┐    ┌──────────────────────▼───────────┐            │
│  │ Send fdl2-dl    │───►│ Write u-boot (secure boot removed│            │
│  │ (patched FDL2)  │    │ + Erase splloader partition)     │            │
│  └─────────────────┘    └──────────────────────────────────┘            │
│                                                                          │
│  ★ After erasing splloader, device enters BootROM DL mode on every boot │
└──────────────────────────────────────────────────────────────────────────┘

Passos:

  1. Use o CVE-2022-38694 para enviar spl-unlock.bin e inicializar o dispositivo
  2. Envie o fdl2-dl.bin corrigido (FDL2 com verificação de boot seguro removida)
  3. Use o FDL2 para gravar u-boot com boot seguro removido na partição uboot
  4. Apague a partição splloader → o dispositivo perde a inicialização normal e entra no modo BootROM DL em toda inicialização

Etapa 2: Operação Reforçada (Auto Flash RP2350)

Com o splloader apagado, o dispositivo entra no modo de download BootROM em toda inicialização. O USB Host RP2350 lida automaticamente com a cadeia de exploração:

┌──────────────────────────────────────────────────────────────────────────┐
│                   Stage 2: RP2350 Automated Boot                        │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  Power on → no splloader → BootROM download mode                        │
│                                                                          │
│  ┌─────────┐    ┌────────────┐    ┌─────────────┐    ┌──────────────┐  │
│  │ BootROM │───►│ Exec Stub  │───►│ spl-unlock  │───►│ U-Boot       │  │
│  │ Handshk │    │ Bypass sig │    │ as FDL1     │    │ (no secboot) │  │
│  └─────────┘    └────────────┘    └─────────────┘    │ Boot OK ✓    │  │
│                                                       └──────────────┘  │
│                                                                          │
│  ★ Fully automatic. Unplug → auto-reset → ready for next device.       │
└──────────────────────────────────────────────────────────────────────────┘

Por que apagar o splloader?

  • Cadeia de inicialização normal: BootROM → SPL Loader → u-boot → Sistema
  • O SPL Loader verifica a assinatura do u-boot — ele rejeitará u-boot modificado
  • Com o splloader apagado, o BootROM não encontra o SPL → cai no modo de download
  • O CVE-2022-38694 envia spl-unlock (pula a verificação de assinatura) → inicializa o u-boot com sucesso sem boot seguro

Cadeia de Exploração (Execução no RP2350)

┌─────────────┐     ┌──────────────────┐     ┌───────────────────┐     ┌──────────────┐
│  BootROM    │     │  Exec Stub       │     │  SPL Loader       │     │  U-Boot      │
│  Handshake  │ ──► │  @0x3F28 (136B)  │ ──► │  @0x28007000      │ ──► │  Boot OK     │
│  CHECK_BAUD │     │  Bypass sig chk  │     │  Replaces FDL1    │     │              │
└─────────────┘     └──────────────────┘     └───────────────────┘     └──────────────┘
  1. Handshake do BootROM — CHECK_BAUD + CONNECT, estabelecer comunicação BSL
  2. Enviar Exec Stub — Carregar 136 bytes em 0x3F28, explorar CVE-2022-38694 para sobrescrever o endereço de retorno, contornar a verificação de assinatura
  3. Enviar SPL Loader — FDL1 e SPL Loader compartilham o endereço de carga 0x28007000, assinatura já contornada
  4. Inicializar U-Boot — spl-unlock pula verificações de assinatura, inicializa u-boot sem boot seguro

Pré-requisitos: Patchear Firmware

Este projeto não inclui firmware corrigido universal. Você deve patchear o firmware do seu dispositivo por conta própria.

Tutorial de Patch

Consulte a Wiki do TomKing062:

  • 🇬🇧 patch_do_cboot — SPL (Inglês)
  • 🇨🇳 patch_do_cboot — SPL (中文)

Firmware a Patchear

FirmwarePatchSaídaObjetivo
FDL2 (u-boot/lk)NOP em verificações de escrita de partição segurafdl2-dl.binEtapa 1: enviado via spd_dump para gravação de partições
U-BootPatch do_cboot() para remover o boot segurouboot modificadoEtapa 1: gravado no dispositivo, substitui o uboot de fábrica
SPL LoaderNOP em signcheck() e verificações de resultadospl-unlock.binEtapas 1 e 2: enviado via CVE-2022-38694

Converter spl-unlock.bin em Header

xxd -i spl-unlock.bin > fdl1_data.h

Atualize o nome do array e as macros em fdl1_data.h para corresponder às referências do código.

Plataformas Suportadas

Este projeto atualmente usa o exec stub UDX710 (custom_exec_3f28.bin).

Para adaptar a outros chips, substitua o exec stub e o endereço de carga em custom_exec_data.h:

Baixar ferramenta