Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
spd_flasher — CVE-2022-38694 Exploit durci - Flasheur automatique USB Host RP2350 pour appareils Unisoc | Kitploit
Outils/GitHubGitHub/leochen-coremind/spd_flasher
Sécurité des Systèmes EmbarquésExploitationRétro-ingénierieHacking MatérielSécurité MobileApprentissage et Éducation
GitHubleochen-coremind/spd_flasher

spd_flasher

CVE-2022-38694 Exploit durci - Flasheur automatique USB Host RP2350 pour appareils Unisoc

Voir le dépôt
3119il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2022-38694 Exploit durci — Flasheur automatique USB Host RP2350

中文版 README

Tutoriel

  • Tutoriel de rétro-ingénierie de la chaîne de démarrage UDX710 et de démarrage durci RP2350

Exploitation de la vulnérabilité BootROM Unisoc CVE-2022-38694 via l'hôte USB Raspberry Pi RP2350 pour envoyer automatiquement le SPL Loader au démarrage et lancer un u-boot arbitraire.

Déplace la chaîne d'exploitation — qui nécessitait à l'origine un PC + spd_dump — sur un microcontrôleur RP2350. Branchez l'appareil, flashez automatiquement, prend en charge le flashage en continu.

Fonctionnement

CVE-2022-38694 est un contournement ponctuel de la vérification de signature dans le BootROM Unisoc. En envoyant un exec stub à une adresse mémoire spécifique, l'adresse de retour est écrasée, contournant les contrôles de signature et permettant au BootROM d'accepter et d'exécuter un FDL1 arbitraire.

Point clé : FDL1 et SPL Loader partagent la même adresse de chargement (0x28007000), de sorte qu'un SPL Loader patché peut être envoyé à la place de FDL1, démarrant ainsi un u-boot arbitraire.

Processus de durcissement (deux étapes)

Étape 1 : Déverrouillage initial (PC + spd_dump)

La configuration initiale nécessite un PC avec 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 │
└──────────────────────────────────────────────────────────────────────────┘

Étapes :

  1. Utilisez CVE-2022-38694 pour envoyer spl-unlock.bin et démarrer l'appareil
  2. Envoyez fdl2-dl.bin patché (FDL2 dont la vérification du démarrage sécurisé est supprimée)
  3. Utilisez FDL2 pour écrire u-boot sans démarrage sécurisé dans la partition uboot
  4. Effacez la partition splloader → l'appareil perd le démarrage normal, entre en mode BootROM DL à chaque mise sous tension

Étape 2 : Opération durcie (flash automatique RP2350)

Une fois la splloader effacée, l'appareil entre en mode de téléchargement BootROM à chaque mise sous tension. L'hôte USB RP2350 gère automatiquement la chaîne d'exploitation :

┌──────────────────────────────────────────────────────────────────────────┐
│                   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.       │
└──────────────────────────────────────────────────────────────────────────┘

Pourquoi effacer splloader ?

  • Chaîne de démarrage normale : BootROM → SPL Loader → u-boot → Système
  • SPL Loader vérifie la signature de u-boot — il rejettera un u-boot modifié
  • Avec splloader effacée, BootROM ne trouve pas SPL → bascule en mode téléchargement
  • CVE-2022-38694 envoie spl-unlock (saute la vérification de signature) → démarre avec succès u-boot sans démarrage sécurisé

Chaîne d'exploitation (exécution RP2350)

┌─────────────┐     ┌──────────────────┐     ┌───────────────────┐     ┌──────────────┐
│  BootROM    │     │  Exec Stub       │     │  SPL Loader       │     │  U-Boot      │
│  Handshake  │ ──► │  @0x3F28 (136B)  │ ──► │  @0x28007000      │ ──► │  Boot OK     │
│  CHECK_BAUD │     │  Bypass sig chk  │     │  Replaces FDL1    │     │              │
└─────────────┘     └──────────────────┘     └───────────────────┘     └──────────────┘
  1. Handshake BootROM — CHECK_BAUD + CONNECT, établir la communication BSL
  2. Envoyer l'exec stub — Charger 136 octets à 0x3F28, exploiter CVE-2022-38694 pour écraser l'adresse de retour, contourner la vérification de signature
  3. Envoyer SPL Loader — FDL1 et SPL Loader partagent l'adresse de chargement 0x28007000, signature déjà contournée
  4. Démarrer U-Boot — spl-unlock saute les vérifications de signature, démarre u-boot sans démarrage sécurisé

Prérequis : patcher le micrologiciel

Ce projet n'inclut pas de micrologiciel patché universel. Vous devez patcher vous-même le micrologiciel de votre appareil.

Tutoriel de patch

Référez-vous au wiki de TomKing062 :

  • 🇬🇧 patch_do_cboot — SPL (Anglais)
  • 🇨🇳 patch_do_cboot — SPL (Chinois)

Micrologiciel à patcher

MicrologicielPatchSortieObjectif
FDL2 (u-boot/lk)NOP les contrôles d'écriture de partition sécuriséefdl2-dl.binÉtape 1 : envoyé via spd_dump pour les écritures de partitions
U-BootPatcher do_cboot() pour supprimer le démarrage sécuriséu-boot modifiéÉtape 1 : écrit sur l'appareil, remplace l'uboot d'origine
SPL LoaderNOP signcheck() et contrôles de résultatspl-unlock.binÉtapes 1 et 2 : envoyé via CVE-2022-38694

Convertir spl-unlock.bin en en-tête

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

Mettez à jour le nom du tableau et les macros dans fdl1_data.h pour correspondre aux références du code.

Plateformes prises en charge

Ce projet utilise actuellement l'exec stub UDX710 (custom_exec_3f28.bin).

Pour adapter à d'autres puces, remplacez l'exec stub et l'adresse de chargement dans custom_exec_data.h :

Télécharger l’outil