Отладка BadUSB на Pi Zero 2W с помощью Claude Code: исправление «невозможной» ошибки

✍️ OpenClawRadar📅 Опубликовано: 26 мая 2026 г.🔗 Source
Отладка BadUSB на Pi Zero 2W с помощью Claude Code: исправление «невозможной» ошибки
Ad

Около 10 месяцев назад разработчик создал набор инструментов BadUSB на базе Pi Zero 2W, но одна функция — «полный сброс между атаками» — так и не заработала. Помеченная как «в разработке», она была заброшена. На этой неделе он пересобрал проект «под ключ» с Claude Code в качестве парного программиста. Результат: «невозможная» функция теперь работает, а в ходе сессии были обнаружены несколько тонких ошибок.

Ad

Что сделал Claude Code

  • Диагностировал первопричину с первого прочтения: Прослушиватель проверял наличие /dev/hidg0 — оно было с момента загрузки, поэтому полезные нагрузки запускались при включении питания независимо от подключения хоста. Правильный сигнал — /sys/class/udc/<udc>/state == "configured".
  • Эмпирически подтвердил аппаратное ограничение: Когда первое исправление не сработало полностью, Claude подключился по SSH, попросил разработчика подключать/отключать кабель, пока сам опрашивал sysfs и регистр GOTGCTL в dwc2 debugfs regdump. Выяснилось, что регистр GOTGCTL застывает на значении 0x000d0000 независимо от состояния кабеля — на Pi Zero 2W сигнал VBUS sense не подключен к блоку OTG SoC. Был применён обходной путь с активным отключением, включающий период охлаждения и защиту от частых срабатываний.
  • Обнаружил молчаливую ошибку Python: open(udc_path, "w").write("") не вызывает write(2) с нулевым количеством байт — TextIOWrapper в CPython пропускает этот вызов. В течение часа тестирования операция отключения фактически не выполнялась. Исправлено на os.write(fd, b"\n"), чтобы принудительно вызвать системный вызов.
  • Исправил запрещённый в configfs демонтаж: rm -rf не срабатывал, потому что configfs запрещает удаление файлов атрибутов, управляемых ядром. Правильная последовательность — только rmdir, от листьев к корню.
  • Написал набор тестов pytest из 34 тестов для имитации HID-движка, что позволяет тестировать парсер на любом хосте без Pi.
  • Обновил память ИИ: Разработчик использует Postgres для долговременной памяти Claude — теперь записи об этих ошибках используются в аналогичных проектах с configfs и USB-gadget.

Вся рабочая сессия заняла около 4 часов, в основном из-за ожидания физического подключения/отключения. В пул-реквесте было шесть хорошо структурированных коммитов с правильными тегами соавторов и планом тестирования. Проект (Pi-Zero-2W-Bad-USB) распространяется по лицензии MIT, включает язык сценариев в стиле Ducky-Script, переменные, IF/WHILE, HOLD/RELEASE, INJECT MOD, RANDOM *, раскладки US/UK, опциональный гаджет RO mass-storage, интеграцию с systemd и идемпотентный установщик.

Для разработчиков, использующих Claude Code в циклах с аппаратным обеспечением, это убедительный пример отладки с помощью ИИ на уровне sysfs и регистров.

📖 Источник: r/ClaudeAI

Ad

👀 Смотрите также

Магазин на базе ИИ использует CLI для совершения покупок.
Кейсы

Магазин на базе ИИ использует CLI для совершения покупок.

Ultrathink создала магазин, полностью управляемый ИИ-агентами, без участия человека в дизайне, выполнении заказов или маркетинге. Покупки ориентированы на терминал: пользователи могут просматривать товары, добавлять в корзину и оформлять заказ через CLI-команды.

OpenClawRadar
Запуск OpenClaw 24/7: Практическая архитектура для постоянных автономных агентов
Кейсы

Запуск OpenClaw 24/7: Практическая архитектура для постоянных автономных агентов

Разработчик делится проверенными решениями для запуска OpenClaw в качестве круглосуточного сервера с cron-заданиями, включая разделённые по темам файлы памяти, агрессивное управление жизненным циклом сессий, обрезку контекста с заполнителями восстановления и обёрточные инструменты для структурированного хранения и восстановления после сбоев.

OpenClawRadar
Claude Opus 4.6 использовался для создания приложения для знакомств с более чем 700 пользователями за один месяц
Кейсы

Claude Opus 4.6 использовался для создания приложения для знакомств с более чем 700 пользователями за один месяц

Разработчик использовал Claude Opus 4.6 для создания полноценного приложения для знакомств с интерфейсом на Flutter, серверной частью на Node.js и базой данных MongoDB. Приложение привлекло более 700 зарегистрированных пользователей примерно за месяц и включает функции подбора пар, чата и реферальной системы.

OpenClawRadar
Запуск Claude Code в Kubernetes CronJob: Производственный опыт и открытая конфигурация
Кейсы

Запуск Claude Code в Kubernetes CronJob: Производственный опыт и открытая конфигурация

Команда everyrow.io делится опытом запуска Claude Code в автоматическом режиме в качестве Kubernetes CronJob, документируя неописанные особенности и открывая исходный код своего Dockerfile, entrypoint-скрипта, Helm-чарта и настройки логирования.

OpenClawRadar