- Статус
- Оффлайн
- Регистрация
- 31 Май 2024
- Сообщения
- 552
- Реакции
- 105
В данной статье рассматривается практическая реализация эмуляции мыши на базе микроконтроллеров Arduino с чипом ATmega32u4. Цель - создание аппаратного HID-устройства, неотличимого для операционной системы от обычной мыши. Этот метод позволяет обходить античиты, анализирующие программные вызовы WinAPI.
Для эмуляции HID-устройства необходим микроконтроллер с поддержкой USB в режиме устройства. Чипы на базе ATmega32u4 (Leonardo, Pro Micro, Micro) имеют встроенный USB-контроллер, позволяющий эмулировать любой HID-класс.
! Чипы ATmega328p (Arduino UNO, Nano) не подходят из-за отсутствия нативной USB-HID поддержки. !
С выбором платы разобрались, перейдём к прошивке.
Имейте ввиду, метод описанный в статье не обходит FACEIT, Vanguard, EAC. Но при и этом прекрасно справляется с другими античитами.
Для большей безопасности настоятельно рекомендую спуффать плату вручную или через ранее опубликованный мною спуффер на форуме.
Прошивка выполняет две задачи:
Пример стандартной прошивки с перемещением курсора и нажатием клавиш на мышке:
В нашем случае данные на плату передаются в текстовом формате:
Пример:
Всё что вам нужно это передавать данные через Serial в нужном формате и получать результат, подстроить код вашего проекта под данную прошивку(либо же написать собственную) проблемы нет.
Лично я использовал Arduino в таких играх как: Stalcraft: X, Apex Legends, Valorant(до детектов), CS2(FastCUP, still ud).
Представленный метод обеспечивает надежный обход программных античитов за счет переноса логики эмуляции ввода на аппаратный уровень. Основные преимущества:
Заранее предвижу комментарии и отвечу сразу:
Да, Arduino как способ эмуляции мыши устарела, но всё ещё работоспособна с некоторыми античитами, к покупке платы на Arduino я рекомендую только для первичного ознакомления с Hardware устройствами в сфере читов. Я настоятельно рекомендую использовать MAKCU. Как только эта плата появиться под рукой обязательно распишу подробный гайд на неё.
Для эмуляции HID-устройства необходим микроконтроллер с поддержкой USB в режиме устройства. Чипы на базе ATmega32u4 (Leonardo, Pro Micro, Micro) имеют встроенный USB-контроллер, позволяющий эмулировать любой HID-класс.
! Чипы ATmega328p (Arduino UNO, Nano) не подходят из-за отсутствия нативной USB-HID поддержки. !
С выбором платы разобрались, перейдём к прошивке.
Имейте ввиду, метод описанный в статье не обходит FACEIT, Vanguard, EAC. Но при и этом прекрасно справляется с другими античитами.
Для большей безопасности настоятельно рекомендую спуффать плату вручную или через ранее опубликованный мною спуффер на форуме.
Прошивка выполняет две задачи:
- Прием команд по Serial интерфейсу
- Эмуляция движений мыши через HID
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пример стандартной прошивки с перемещением курсора и нажатием клавиш на мышке:
Firmware:
#include <HID.h>
const unsigned long SERIAL_BAUD = 115200;
const int MAX_MOVE = 50;
const int MIN_MOVE = -50;
bool enable_randomization = true;
void setup() {
Serial.begin(SERIAL_BAUD);
Mouse.begin();
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
}
void loop() {
if (Serial.available() > 0) {
int delta_x = Serial.parseInt();
int delta_y = Serial.parseInt();
int button = Serial.parseInt();
while (Serial.available() && Serial.read() != '\n');
delta_x = constrain(delta_x, MIN_MOVE, MAX_MOVE);
delta_y = constrain(delta_y, MIN_MOVE, MAX_MOVE);
if (enable_randomization && (delta_x != 0 || delta_y != 0)) {
delta_x += random(-1, 2);
delta_y += random(-1, 2);
delay(random(1, 3));
}
if (delta_x != 0 || delta_y != 0) {
Mouse.move(delta_x, delta_y, 0);
}
switch(button) {
case 1:
Mouse.click(MOUSE_LEFT);
break;
case 2:
Mouse.click(MOUSE_RIGHT);
break;
case 3:
Mouse.click(MOUSE_MIDDLE);
break;
}
}
delay(1);
}
В нашем случае данные на плату передаются в текстовом формате:
<dx> <dy> <button>\nПример:
Код:
"10 -5 1\n" // движение (10, -5) и левый клик
"0 0 2\n" // правый клик без движения
"-30 15 0\n" // движение без клика
Всё что вам нужно это передавать данные через Serial в нужном формате и получать результат, подстроить код вашего проекта под данную прошивку(либо же написать собственную) проблемы нет.
Лично я использовал Arduino в таких играх как: Stalcraft: X, Apex Legends, Valorant(до детектов), CS2(FastCUP, still ud).
Представленный метод обеспечивает надежный обход программных античитов за счет переноса логики эмуляции ввода на аппаратный уровень. Основные преимущества:
- Отсутствие вызовов WinAPI, доступных для перехвата
- Неотличимость от обычной мыши для драйверной подсистемы Windows
- Простота реализации и отладки
Заранее предвижу комментарии и отвечу сразу:
Да, Arduino как способ эмуляции мыши устарела, но всё ещё работоспособна с некоторыми античитами, к покупке платы на Arduino я рекомендую только для первичного ознакомления с Hardware устройствами в сфере читов. Я настоятельно рекомендую использовать MAKCU. Как только эта плата появиться под рукой обязательно распишу подробный гайд на неё.