Debuggen eines Pi Zero 2W BadUSB mit Claude Code: Behebung eines 'unmöglichen' Bugs

Vor etwa 10 Monaten baute ein Entwickler ein Pi Zero 2W BadUSB-Toolkit, aber eine Funktion – „vollständiger Reset zwischen Angriffen“ – funktionierte nie. Als WIP markiert, wurde das Projekt aufgegeben. Diese Woche baute der Entwickler das Projekt mit Claude Code als Pair-Programmierer von Grund auf neu auf. Das Ergebnis: Die „unmögliche“ Funktion funktioniert jetzt, und die Sitzung förderte mehrere subtile Fehler zutage.
Was Claude Code tat
- Ursache auf einen Blick erkannt: Der Listener prüfte nur die Existenz von
/dev/hidg0– diese war von Anfang an gegeben – daher wurden Payloads sofort nach dem Einschalten ausgeführt, unabhängig davon, ob ein Host angeschlossen war. Das korrekte Signal ist/sys/class/udc/<udc>/state == "configured". - Hardware-Limit empirisch bestätigt: Als die erste Korrektur nicht vollständig funktionierte, meldete sich Claude per SSH an, forderte den Entwickler auf, ein-/auszustecken, während er sysfs und das dwc2 debugfs
regdump-Register abfragte. Dabei stellte er fest, dass dasGOTGCTL-Register bei0x000d0000einfriert, unabhängig vom Kabelzustand – der Pi Zero 2W hat keine VBUS-Erkennung, die mit dem OTG-Block des SoC verbunden ist. Claude wechselte zu einem Workaround mit aktivem Unbind, Abkühlphase und Ratenbegrenzung. - Stillen Python-Fehler entdeckt:
open(udc_path, "w").write("")ruftwrite(2)nicht mit null Bytes auf – CPythonsTextIOWrapperunterlässt den Aufruf. Der Unbind war eine Stunde lang eine Nulloperation. Behoben durchos.write(fd, b"\n"), um einen Syscall zu erzwingen. - Verbotene Löschung bei Configfs behoben:
rm -rfschlug fehl, weil Configfs das Entfernen von kernelverwalteten Attributdateien verbietet. Die korrekte Reihenfolge istrmdirnur, von Blatt zu Wurzel. - Pytest-Suite mit 34 Tests geschrieben gegen eine simulierte HID-Engine, ermöglicht Parsertests auf jedem Host ohne Pi.
- KI-Gedächtnis aktualisiert: Der Entwickler nutzt Postgres als Langzeitspeicher für Claude – diese Fehlereinträge werden nun in ähnlichen Configfs/USB-Gadget-Projekten referenziert.
Die gesamte Arbeitssitzung dauerte etwa 4 Stunden, hauptsächlich Wartezeit bei physischem Ein-/Ausstecken. Der Pull Request enthielt sechs gut abgegrenzte Commits mit korrekten Co-Author-Tags und einem Testplan. Das Projekt (Pi-Zero-2W-Bad-USB) ist MIT-lizenziert und bietet eine Ducky-Script-ähnliche Payload-Sprache, Variablen, IF/WHILE, HOLD/RELEASE, INJECT MOD, RANDOM *, US/UK-Tastaturlayouts, optionalen RO-Massenspeicher-Gadget, systemd-Integration und idempotentes Installationsskript.
Für Entwickler, die Hardware-in-the-Loop-Workflows mit Claude Code einsetzen, ist dies eine überzeugende Fallstudie zur KI-gestützten Fehlersuche auf Sysfs- und Registerebene.
📖 Vollständige Quelle lesen: r/ClaudeAI
👀 Siehe auch
Claude als Denkpartner in nicht-technischen Branchen: Praxisbeispiele aus einem japanischen Logistikbüro
Ein japanischer Logistik-/Abfallentsorgungsmitarbeiter beschreibt detailliert, wie er Claude zur Routenplanung, VBA-Automatisierung, Erstellung von Schulungsinhalten und Produktion von Sicherheitsvideos über eine Multi-Tool-Pipeline einsetzt.

Claude AI analysiert CSV-Autofahrtdaten ohne spezifische Aufforderungen
Ein Benutzer lud einen CSV-Export von Autofahrtdaten in Claude AI hoch, der automatisch eine umfassende Analyse und ein Dashboard generierte, ohne zusätzliche Aufforderungen, ausgehend von einer Unterhaltung über kWh/100 Meilen Effizienzmetriken.

OpenClaw-Benutzer berichten von deutlichen Verbesserungen nach der Umstellung auf OpenAI OAuth mit GPT-4
Ein Entwickler, der mit den Modellen Kimi k2.5 und Minimax2.7 in OpenClaw zu kämpfen hatte, wechselte zu OpenAIs OAuth-Verbindung mit GPT-4 und adaptivem Denken und berichtete von sofortigen Stabilitätsverbesserungen sowie der Fertigstellung mehrerer Automatisierungsaufgaben in 4-5 Stunden.

Aufbau einer KI-Rezeptionistin für eine Autowerkstatt: RAG-Pipeline und Sprachintegration
Ein Entwickler baute einen maßgeschneiderten KI-Empfang namens Axle für eine Luxus-Werkstatt mithilfe einer RAG-Pipeline mit MongoDB Atlas und Voyage AI-Embeddings und verband ihn dann über Vapi mit FastAPI und Ngrok mit einer echten Telefonleitung.