Как писать скрипты для Flipper Zero: полное руководство

Flipper Zero отказывается выполнять скрипт BadUSB чаще всего по одной причине: файл сохранён не в той папке или содержит команду, которую прошивка не распознаёт. Проверить это можно за минуту — откройте на устройстве раздел Bad USB, найдите свой файл в списке и посмотрите, запускается ли он без ошибки синтаксиса. Если скрипт стартует, но ничего не происходит на компьютере, вероятная причина — слишком маленькая задержка DELAY между командами: система просто не успевает обработать эмулируемые нажатия клавиш.

В этой статье разберём, какие типы скриптов поддерживает Flipper Zero, как устроен язык Ducky Script, где хранятся файлы на SD-карте и как отладить скрипт, который не работает. Материал ориентирован на легальные сценарии: автоматизацию рутинных действий на собственном компьютере, тестирование своих систем и обучение.

Какие скрипты умеет выполнять Flipper Zero

Под «скриптами» в экосистеме Flipper обычно понимают несколько разных вещей, и важно сразу разделить их. Самый популярный формат — BadUSB-скрипты на языке Ducky Script: устройство подключается к компьютеру как USB-клавиатура и «печатает» заданную последовательность команд. Это текстовые файлы с расширением .txt, которые лежат в папке badusb на SD-карте.

Кроме этого, существуют сценарии для других модулей:

  • 📟 Sub-GHz — файлы .sub с записанными радиосигналами, которые можно воспроизводить;
  • 💳 NFC и RFID — сохранённые дампы карт в форматах .nfc и .rfid;
  • 🔌 GPIO — управление контактами через приложения из каталога, включая сценарии на JavaScript в поддерживаемых прошивках;
  • 🖥️ JavaScript-приложения — на официальной прошивке доступен запуск JS-скриптов через соответствующее приложение, если оно установлено.

В этой статье основной фокус — на Ducky Script, поскольку именно с него начинают большинство пользователей. Принципы отладки и загрузки файлов при этом общие для всех форматов.

Подготовка: что понадобится перед написанием скрипта

Прежде чем писать первый скрипт, убедитесь, что устройство готово к работе. Необходима SD-карта, отформатированная в FAT32 — без неё Flipper не сможет хранить файлы скриптов. Также понадобится компьютер с любым текстовым редактором: подойдёт даже стандартный «Блокнот», но удобнее редактор с подсветкой синтаксиса, например Notepad++ или VS Code.

Файлы на карту удобнее всего загружать через официальное приложение qFlipper для Windows, macOS или Linux: оно позволяет перетаскивать файлы в нужные папки без извлечения карты. Альтернатива — вынуть SD-карту и подключить её к компьютеру через картридер.

☑️ Подготовка к написанию скрипта

Выполнено: 0 / 5

⚠️ Внимание: используйте BadUSB-скрипты только на собственных компьютерах или системах, на тестирование которых у вас есть явное разрешение. Эмуляция клавиатуры для доступа к чужим устройствам без согласия владельца может нарушать законодательство вашей страны.

Синтаксис Ducky Script: базовые команды

Ducky Script — построчный язык: каждая строка файла — отдельная команда. Парсер читает файл сверху вниз и выполняет инструкции последовательно. Ошибка в одной строке обычно приводит к остановке всего скрипта, поэтому синтаксис нужно соблюдать строго.

Основные команды, которых достаточно для первых скриптов:

  • ⌨️ STRING текст — печатает указанный текст, как будто его ввели с клавиатуры;
  • ⏱️ DELAY миллисекунды — пауза перед следующей командой;
  • ENTER — нажатие клавиши Enter;
  • 🪟 GUI r — комбинация Win+R на Windows (GUI обозначает клавишу Windows/Command);
  • 💬 REM текст — комментарий, строка игнорируется при выполнении.

Простейший пример — скрипт, открывающий «Блокнот» и печатающий строку:

REM Первый тестовый скрипт

DELAY 1000

GUI r

DELAY 500

STRING notepad

ENTER

DELAY 1000

STRING Privet ot Flipper Zero!

Обратите внимание на задержки: без DELAY после GUI r система может не успеть открыть окно «Выполнить», и текст набора уйдёт «в никуда». Если скрипт работает нестабильно, первым делом увеличьте паузы — это самая частая причина сбоев.

📊 Какой тип скриптов для Flipper Zero вам интереснее всего?
BadUSB и Ducky Script
Sub-GHz и радиосигналы
NFC и RFID
JavaScript-приложения

Раскладка клавиатуры: почему текст печатается неправильно

Частая проблема начинающих: скрипт печатает STRING, но на экране появляются не те символы — вместо кириллицы иероглифы, а знаки препинания съезжают. Причина в том, что Flipper эмулирует клавиатуру с определённой раскладкой, и она должна совпадать с раскладкой целевой системы.

Файлы раскладок хранятся на SD-карте в папке badusb/assets/layouts (точный путь может отличаться в зависимости от версии прошивки — сверьтесь с документацией вашей сборки). Перед запуском скрипта в меню Bad USB можно выбрать нужную раскладку. Если целевая система работает на русском, а скрипт рассчитан на английскую раскладку, результат будет непредсказуемым.

⚠️ Внимание: команда STRING печатает только те символы, которые существуют в выбранной раскладке. Кириллический текст в STRING при английской раскладке на устройстве и в системе чаще всего не сработает корректно — надёжнее использовать системные команды и латиницу.

Загрузка скрипта на устройство и запуск

Готовый файл сохраняется с расширением .txt и копируется в папку badusb на SD-карте. Через qFlipper это делается перетаскиванием файла в файловом менеджере приложения. После копирования файл появится в меню устройства без перезагрузки.

Порядок запуска на самом Flipper:

  • 📂 Откройте на устройстве раздел Bad USB;
  • 📄 Выберите нужный файл из списка;
  • 🔌 Подключите Flipper кабелем к целевому компьютеру;
  • ▶️ Нажмите Run — выполнение начнётся сразу, поэтому кабель подключайте до старта.

Некоторые прошивки позволяют запускать скрипт с задержкой или выбирать режим подключения (клавиатура либо комбинированное устройство). Набор опций зависит от версии прошивки, поэтому если какого-то пункта нет в меню — проверьте документацию именно вашей сборки.

Что делать, если файл не виден в меню Bad USB

Проверьте три вещи: файл лежит именно в папке badusb в корне SD-карты, расширение файла — .txt (а не .txt.txt, что бывает при скрытых расширениях в Windows), и SD-карта корректно смонтирована — попробуйте перезагрузить Flipper.

Отладка: типичные ошибки и их причины

Если скрипт не работает, диагностику стоит вести от простого к сложному. Сначала проверьте, видит ли компьютер устройство как клавиатуру: при подключении Flipper в режиме BadUSB система должна определить новое HID-устройство. Если этого не происходит, дело в кабеле (нужен кабель с передачей данных, а не только зарядкой) или в USB-порте.

Дальше смотрите на поведение скрипта. Ниже — таблица типичных симптомов и вероятных причин.

СимптомВероятная причинаЧто проверить
Скрипт не запускается, ошибка на FlipperСинтаксическая ошибка в файлеОпечатки в командах, лишние символы
Команды выполняются «вслепую», окна не открываютсяСлишком маленькие задержкиУвеличить значения DELAY
Печатаются не те символыНесовпадение раскладокВыбранная раскладка в меню Bad USB
Компьютер не реагирует вообщеКабель без линий данных или неисправный портДругой кабель и USB-порт
Скрипт обрывается на серединеНеподдерживаемая команда прошивкиСписок команд в документации прошивки

Набор поддерживаемых команд Ducky Script различается между официальной и сторонними прошивками — например, расширенные команды вроде работы с переменными могут присутствовать не везде. Перед использованием нестандартной команды сверьтесь с документацией вашей прошивки.

⚠️ Внимание: не запускайте чужие скрипты из интернета, не разобравшись в их содержимом. Каждая строка Ducky Script — это реальные действия на компьютере, и среди безобидных команд могут быть деструктивные.

За пределами BadUSB: JavaScript и приложения

Когда возможностей Ducky Script перестаёт хватать, следующий шаг — JavaScript. На актуальных прошивках Flipper поддерживает запуск JS-скриптов через соответствующее приложение: они позволяют работать с интерфейсом устройства, GPIO и другими модулями. Файлы размещаются в выделенной папке на SD-карте, а API описан в официальной документации проекта.

Для более глубокой кастомизации существуют полноценные приложения на C, но это уже разработка под платформу со сборкой через инструментарий прошивки — отдельная тема, требующая опыта программирования. Начинающим разумнее освоить связку «Ducky Script → JavaScript» и только потом переходить к нативным приложениям.

Частые вопросы

Нужно ли уметь программировать, чтобы писать скрипты для Flipper Zero?

Для Ducky Script — нет. Это не язык программирования в полном смысле, а набор команд-нажатий клавиш. Достаточно понимать логику последовательности действий и уметь работать с текстовым файлом. Для JavaScript и приложений на C базовые навыки программирования уже потребуются.

Почему скрипт работает на одном компьютере и не работает на другом?

Чаще всего причины — разная скорость системы (не хватает задержек DELAY), другая раскладка клавиатуры или отличия в ОС. Скрипт, написанный под Windows, на macOS потребует замены сочетаний клавиш, поскольку комбинации вроде GUI+r там работают иначе.

Какое расширение должно быть у файла скрипта BadUSB?

Обычный текстовый файл с расширением .txt, размещённый в папке badusb на SD-карте. Файлы с другими расширениями меню Bad USB не отобразит.

Можно ли писать скрипты прямо на Flipper Zero?

Полноценного редактора для создания скриптов на самом устройстве в стандартной прошивке нет — файлы готовят на компьютере и загружают через qFlipper или картридер. Возможности сторонних прошивок могут отличаться, уточняйте в их документации.

Безопасно ли скачивать готовые скрипты из интернета?

Только после полного прочтения кода. Каждая строка скрипта — это действие на компьютере, и вредоносные команды внешне ничем не выделяются. Правило простое: не запускайте то, чего не понимаете построчно.