Débogage d'un BadUSB Pi Zero 2W avec Claude Code : Correction d'un bogue « impossible »

✍️ OpenClawRadar📅 Publié: May 26, 2026🔗 Source
Débogage d'un BadUSB Pi Zero 2W avec Claude Code : Correction d'un bogue « impossible »
Ad

Il y a environ 10 mois, un développeur a construit un kit BadUSB pour Pi Zero 2W, mais une fonctionnalité — « réinitialisation complète entre les attaques » — n'a jamais fonctionné. Marquée comme en cours, elle a été abandonnée. Cette semaine, ils ont reconstruit le projet de bout en bout avec Claude Code comme binôme. Résultat : la fonctionnalité « impossible » fonctionne désormais, et la session a révélé plusieurs bugs subtils.

Ad

Ce que Claude Code a fait

  • Diagnostic de la cause racine en une lecture : L'observateur surveillait l'existence de /dev/hidg0 — vrai dès le démarrage — donc il déclenchait les charges utiles au démarrage, indépendamment de la connexion hôte. Le bon signal est /sys/class/udc/<udc>/state == "configured".
  • Confirmation empirique d'une limitation matérielle : Quand la première correction n'a pas entièrement fonctionné, Claude s'est connecté en SSH, a demandé au développeur de brancher/débrancher pendant qu'il sondait sysfs et le registre regdump de dwc2 debugfs. Il a constaté que le registre GOTGCTL se fige à 0x000d0000 quel que soit l'état du câble — le Pi Zero 2W n'a pas de détection VBUS câblée au bloc OTG du SoC. Il est passé à une solution de contournement de désactivation active avec période de refroidissement et protection de limitation de débit.
  • Détection d'un bug silencieux en Python : open(udc_path, "w").write("") n'invoque pas write(2) avec zéro octet — TextIOWrapper de CPython élude l'appel. La désactivation était un no-op pendant une heure de test. Corrigé en os.write(fd, b"\n") pour forcer un appel système.
  • Correction d'un démontage interdit sur configfs : rm -rf échouait car configfs interdit de dissocier les fichiers d'attributs gérés par le noyau. La séquence correcte est uniquement rmdir, de la feuille à la racine.
  • Écriture d'une suite de tests pytest de 34 tests contre un moteur HID simulé, permettant de tester le parseur sur n'importe quelle machine sans Pi.
  • Mise à jour de la mémoire IA : Le développeur utilise Postgres comme mémoire à long terme pour Claude — ces entrées de bugs sont désormais référencées dans des projets similaires configfs/USB-gadget.

Toute la session de travail a duré environ 4 heures, principalement à attendre les branchements/débranchements physiques. La PR comprenait six commits bien découpés avec des tags de co-auteur appropriés et un plan de test. Le projet (Pi-Zero-2W-Bad-USB) est sous licence MIT, avec un langage de payload de type Ducky-Script, des variables, IF/WHILE, HOLD/RELEASE, INJECT MOD, RANDOM *, des mappages de touches US/UK, un gadget optionnel RO mass-storage, une intégration systemd et un installateur idempotent.

Pour les développeurs travaillant avec des workflows matériels en boucle avec Claude Code, c'est une étude de cas convaincante de débogage assisté par IA au niveau sysfs et des registres.

📖 Lire la source complète : r/ClaudeAI

Ad

👀 See Also

L'agent IA OpenClaw aide l'équipe à sauver la journée de démonstration avec un prototype rapide.
Use Cases

L'agent IA OpenClaw aide l'équipe à sauver la journée de démonstration avec un prototype rapide.

Une équipe de développement a utilisé l'agent IA d'OpenClaw pour créer un site de démonstration fonctionnel avec des données fictives en 10 minutes, après que leur pivot produit a menacé leur participation à la journée de démonstration de South Park Commons.

OpenClawRadar
Utilisateur d'OpenClaw partage l'architecture d'un système de production à 43 agents
Use Cases

Utilisateur d'OpenClaw partage l'architecture d'un système de production à 43 agents

Un cabinet de conseil en branding avec plus de 1 000 clients utilise depuis plusieurs mois un système OpenClaw de 43 agents en production, présentant une architecture en couches avec des agents spécialisés dans les fonctions de commande, renseignement, contenu, technologie et vente.

OpenClawRadar
Un prompt qui trouve, envoie des emails et enregistre 200 contacts d'investisseurs via Claude Code
Use Cases

Un prompt qui trouve, envoie des emails et enregistre 200 contacts d'investisseurs via Claude Code

Une seule invite pour Claude Code ou n'importe quel agent IA extrait des investisseurs, vérifie les doublons dans Gmail/Notion, envoie des emails froids personnalisés via SMTP, et enregistre tout dans Notion — de manière entièrement autonome.

OpenClawRadar
Opus gère le nettoyage du frontend en déléguant aux sous-agents d’un playbook
Use Cases

Opus gère le nettoyage du frontend en déléguant aux sous-agents d’un playbook

Un utilisateur a optimisé une page, documenté les correctifs dans un playbook ADR, puis a demandé à Opus de répartir les 9 pages restantes entre 3 sous-agents, touchant 41 fichiers avec des résultats Lighthouse quasi parfaits.

OpenClawRadar