Evil Crow Cable Wind — как прошить прошивку и не сойти с ума
Каждый, кто когда-либо держал в руках USB-кабель и думал: «а что, если бы этот кабель мог делать нечто большее, чем просто заряжать телефон» — скорее всего, в конце концов наткнулся на Evil Crow Cable Wind. Это неприметный USB-кабель, внутри которого скрыт микроконтроллер ESP32-S3 с WiFi, флэш-памятью и амбициями, далеко выходящими за пределы его размеров.
Сегодня я покажу вам, как установить на него свежую прошивку — с нуля, начисто, в Windows. А затем — как к нему подключиться и начать работу.
Вообще-то, вы можете просто скормить это руководство ИИ, и он проведет вас за ручку... :)
Что внутри
На самом деле Evil Crow Cable Wind — это полноценный микроконтроллер ESP32-S3-PICO-1, заключенный в корпус USB-кабеля. Конкретно в нашем распоряжении:
- 8 МБ флэш-памяти (встроенной, не на SD-карте)
- 2 МБ PSRAM
- WiFi и Bluetooth LE
- Интерфейс USB HID — кабель умеет притворяться клавиатурой
Прошивка предоставляет веб-панель, из которой можно писать и запускать пейлоады (нагрузки), загружать скрипты, планировать autoexec — словом, всё, что нужно для работы с BadUSB. Но чтобы всё это заработало, сначала нужно установить соответствующую прошивку.

Что потребуется
Прежде чем перейти к самому интересному, нужно подготовить рабочее место. Список покупок выглядит так:
- Arduino CLI — консольная утилита для компиляции и загрузки прошивки. Конечно, можно использовать полноценную Arduino IDE с графическим интерфейсом, но зачем кликать, если можно ввести одну команду?
- ESP32 Board Manager v3.2.0 — платформа Espressif для Arduino, содержит компилятор, утилиты для прошивки и определения плат. Версия 3.2.0 обязательна — более новые могут вызвать проблемы несовместимости.
- Репозиторий EvilCrowCable-Wind — там находится прошивка и модифицированная библиотека USB.
- Библиотека ArduinoJson — она нужна прошивке для обработки конфигурации.
- Магнит — да, физический магнит. Приложенный к активному концу кабеля, он переводит его в режим программирования. Без него кабель ведет себя как обычный USB-кабель, и прошить его невозможно.
Подготовка среды шаг за шагом
Начнем с создания рабочего каталога и загрузки всего необходимого.
Шаг 1 — Скачайте arduino-cli
Зайдите на страницу arduino-cli releases и скачайте последнюю версию ZIP для Windows 64-bit. Распакуйте в наш рабочий каталог.
mkdir EvilCrowCable-Wind-Setup
cd EvilCrowCable-Wind-Setup
curl -L -o arduino-cli.zip https://github.com/arduino/arduino-cli/releases/download/v1.4.1/arduino-cli_1.4.1_Windows_64bit.zip
unzip arduino-cli.zip -d arduino-cli-bin
Шаг 2 — Настройте ESP32 board manager
Добавляем URL репозитория Espressif и устанавливаем платформу ESP32 версии 3.2.0:
arduino-cli-bin/arduino-cli.exe config init --overwrite
arduino-cli-bin/arduino-cli.exe config add board_manager.additional_urls https://espressif.github.io/arduino-esp32/package_esp32_index.json
arduino-cli-bin/arduino-cli.exe core update-index
arduino-cli-bin/arduino-cli.exe core install esp32:esp32@3.2.0
Это займет некоторое время — платформа ESP32 весит больше 1 ГБ. Самое время выпить кофе.
Шаг 3 — Клонируйте репозиторий и библиотеки
git clone https://github.com/joelsernamoreno/EvilCrowCable-Wind.git
git clone https://github.com/bblanchon/ArduinoJson.git
Теперь нужно скопировать библиотеки туда, где Arduino CLI будет их искать — в папку Documents\Arduino\libraries:
mkdir -p ~/Documents/Arduino/libraries
unzip EvilCrowCable-Wind/modified-libraries/USB.zip -d ~/Documents/Arduino/libraries/
cp -r ArduinoJson ~/Documents/Arduino/libraries/ArduinoJson
Библиотека USB в каталоге modified-libraries — это модифицированная версия библиотеки ESP32 USB. Это не стандартная библиотека из менеджера, поэтому ее нужно установить вручную. Без нее прошивка не скомпилируется.
Прошивка — одна команда
А теперь самое приятное. Вся компиляция и установка прошивки выполняется одной командой в терминале:
arduino-cli-bin/arduino-cli.exe compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=default,CPUFreq=80,DFUOnBoot=default,FlashMode=qio,FlashSize=8M,PartitionScheme=default_8MB,UploadSpeed=921600,USBMode=hwcdc" --libraries ~/Documents/Arduino/libraries --upload --port COM3 EvilCrowCable-Wind/firmware
Давайте разберем ее по частям, потому что выглядит она грозно:
| Параметр | Значение | Что он делает |
|---|---|---|
--fqbn |
esp32:esp32:esp32s3:... |
Fully Qualified Board Name — идентифицирует плату и её конфигурацию |
CDCOnBoot=default |
Отключено | Отключает USB CDC при загрузке |
CPUFreq=80 |
80MHz (WiFi) | Тактовая частота процессора — 80 МГц достаточно для работы и экономии энергии |
DFUOnBoot=default |
Отключено | Отключает режим DFU при загрузке |
FlashMode=qio |
QIO 80MHz | Режим связи с флэш-памятью — самый быстрый из доступных |
FlashSize=8M |
8MB (64Mb) | Объем флэш-памяти в кабеле |
PartitionScheme=default_8MB |
3MB APP / 1.5MB SPIFFS | Схема разделов — 3 МБ для приложения, 1.5 МБ для файловой системы |
UploadSpeed=921600 |
921600 бод | Скорость загрузки — чем быстрее, тем лучше |
USBMode=hwcdc |
Hardware CDC and JTAG | Режим USB — аппаратный CDC |
--port COM3 |
Последовательный порт | Порт, на котором виден кабель — у вас может быть другой |
--libraries |
Путь к библиотекам | Указывает на наши установленные вручную библиотеки |
Флаг --upload говорит arduino-cli, чтобы после компиляции она сразу загрузила прошивку на устройство. Без него мы получим только скомпилированный бинарный файл.
Как найти порт COM
Прежде чем запускать приведенную выше команду, нужно узнать, на каком порту сидит кабель. Просто введите:
arduino-cli-bin/arduino-cli.exe board list
Вы увидите что-то вроде этого:
Port Protocol Type Board Name FQBN Core
COM3 serial Serial Port (USB) ESP32 Family Device esp32:esp32:esp32_family esp32:esp32
Запомните номер порта и подставьте его в параметр --port.
Режим программирования — магнит
Это та деталь, которая отличает Evil Crow Cable Wind от обычной отладочной платы. У кабеля нет кнопки BOOT — вместо неё установлен магнитный датчик. Чтобы войти в режим программирования:
- Возьмите магнит (подойдет небольшой неодимовый)
- Приложите его к активному концу кабеля (тот, что с наклейкой)
- Подключите кабель к компьютеру
- Теперь кабель находится в режиме программирования и появится как COM-порт
После прошивки уберите магнит. Кабель перезагрузится и запустит новую прошивку.

Подключение к кабелю — веб-панель
Прошивка установлена, кабель работает. Но как с ним связаться? Evil Crow Cable Wind подключается к сети WiFi как клиент (режим STA) — это значит, что он не создает собственную сеть, а подключается к существующей.
Конфигурация WiFi по умолчанию
В прошивке по умолчанию заданы следующие данные:
- SSID:
Evil Crow Cable Wind - Пароль:
123456789
После запуска кабель ищет сеть с таким названием и пытается к ней подключиться. Если он её не найдет, соединение просто не установится, и веб-панель будет недоступна.
Создание точки доступа (хотспота)
Проще всего создать точку доступа на ноутбуке или телефоне с точно такими же параметрами, как указано выше. В Windows это можно сделать через Настройки > Сеть и Интернет > Мобильный хот-спот, задав:
- Имя сети:
Evil Crow Cable Wind - Пароль:
123456789
После запуска хотспота подключите кабель к USB (без магнита). Через несколько секунд кабель должен автоматически подключиться к сети.
Поиск IP-адреса
Теоретически, кабель должен быть доступен по адресу http://cable-wind.local благодаря mDNS. На практике — mDNS иногда не работает на Android и бывает капризным в Windows. Поэтому лучшее решение — проверить, какой IP-адрес получил кабель.
На ноутбуке с хотспотом достаточно зайти в список подключенных устройств или в терминале выполнить:
arp -a
Ищем адрес в подсети хотспота — обычно это что-то вроде 192.168.0.x. Вводим этот адрес в браузер, и мы должны увидеть панель Evil Crow Cable Wind.
Веб-панель
После перехода по IP-адресу кабеля в браузере нам доступна полная панель управления:
- Home — статус устройства, информация о подключении
- Payload Editor — редактор пейлоадов в реальном времени
- Upload Payload — загрузка готовых скриптов
- List Payloads — список сохраненных пейлоадов
- AutoExec Planning — планирование автоматического выполнения скриптов после подключения
- Config — настройка WiFi, USB (Vendor ID, Product ID, имя устройства), имени хоста и раскладки клавиатуры
В разделе Config можно изменить SSID и пароль WiFi на свои собственные — тогда кабель будет подключаться к вашей домашней сети, и вам не придется каждый раз создавать для него отдельный хотспот.
Обновление прошивки по WiFi (OTA)
Если на кабель уже установлена прошивка и он подключен к сети WiFi, последующие обновления можно загружать по воздуху — без магнита и без подключения к компьютеру.
В Arduino CLI экспортируем скомпилированный бинарный файл:
arduino-cli-bin/arduino-cli.exe compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=default,CPUFreq=80,DFUOnBoot=default,FlashMode=qio,FlashSize=8M,PartitionScheme=default_8MB,UploadSpeed=921600,USBMode=hwcdc" --libraries ~/Documents/Arduino/libraries --output-dir ./build EvilCrowCable-Wind/firmware
А затем отправляем его на кабель одной командой curl:
curl -F "image=@./build/firmware.ino.bin" http://192.168.137.22/update
Конечно, IP-адрес нужно заменить на актуальный адрес вашего кабеля. После загрузки кабель автоматически перезагрузится.
Итоги
Весь процесс от нуля до работающей прошивки выглядит так:
- Скачать arduino-cli, клонировать репозиторий и библиотеки
- Установить ESP32 board manager v3.2.0
- Приложить магнит, подключить кабель, проверить COM-порт
- Запустить одну команду
compile --upload - Создать хотспот, найти IP, открыть панель в браузере
Всё вместе — от пустого диска до работающей веб-панели — занимает около 15 минут, из которых большая часть уходит на ожидание загрузки платформы ESP32. Сама прошивка длится менее 10 секунд.
Evil Crow Cable Wind — интересный инструмент для тестирования безопасности и изучения атак BadUSB. Как и в случае с любым подобным инструментом — используйте его ответственно и только на тех устройствах, к которым у вас есть авторизованный доступ. Этичный хакинг начинается с согласия владельца.