Bad Evil -
Малый да удалый

Нужна помощь ?
У нас есть выделенная линия поддержки наших покупателей.
BAD EVIL
ИНСТРУКЦИЯ
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.
Установка Homebrew (для зависимостей)
  1. Откройте Terminal.
  2. Установите Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Добавьте Homebrew в PATH (для Apple Silicon):
  1. Для Intel Macs используйте ~/.bash_profile вместо ~/.zprofile, если ваша оболочка — Bash.
  2. Проверка устнановки brew --version
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
Установка ATTinyCore:
  1. В Arduino IDE перейдите в File → Preferences.
  2. В поле Additional Boards Manager URLs добавьте:
http://drazzy.com/package_drazzy.com_index.json
(или всегда актуальный https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json)
  1. Перейдите в Tools → Board → Boards Manager, найдите ATTinyCore и установите его.
  2. Выберите плату: 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.
Установка libusb-compat:
  1. Установите libusb-compat для Micronucleus:
  2. Проверьте наличие библиотеки:
# Установка 
brew install libusb-compat
# Проверка
ls /opt/homebrew/lib/libusb-0.1.4.dylib
Тестовый скрипт
Загрузка скетча
  1. Подключите Digispark к USB-порту только после команды загрузки.
  2. В Arduino IDE выберите Tools → Programmer → Micronucleus.
  3. Нажмите Upload (Оранжевая стрелочка в левом верхнем углу). Когда появится сообщение Plug in device now..., подключите Digispark.
  4. После успешной загрузки подключите Digispark к компьютеру. Скетч откроет блокнот и напечатает текст.
#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() {}
Скрипт для пранка
  1. Загрузите и запишите скетч
  2. Наслаждайтесь
#include "DigiKeyboard.h"

void setup() {
  DigiKeyboard.delay(2000);
  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(600);
  DigiKeyboard.print("https://youtu.be/dQw4w9WgXcQ?t=43s");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
}

void loop() {
  //empty
}
Остались вопросы?
Наше комъюнити с радостью ответит на все ваши вопросы, поможет подобрать оптимальное решение для ваших целей и расскажет, что может быть полезным именно для вас.
Разработка скриптов
Разработка скетчей
Тестирование на безопасность
Пентест
OSINT