Здравствуйте, гость ( Вход | Регистрация )

> Arduino, Нажатия мыши и клавиатуры в обход защиты от кликеров
cirus
сообщение 14.12.2020, 0:24
Сообщение #1


**********

Elder
Сообщений: 3.153
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 20038
Пользователь №: 16.971
Возраст: 29



Скетч и модуль lua:    Прикрепленный файл  arduino.zip ( 7,07 килобайт ) Кол-во скачиваний: 48
Драйвер для ардуино: Прикрепленный файл  CH341SER.zip ( 185,9 килобайт ) Кол-во скачиваний: 42

Arduino позволяет эмулировать нажатия клавиш клавиатуры и мыши, в том числе в приложениях, которые блокируют нажатия кликеров.
Может поворачивать камеру в шутерах и играх, в которых камера поворачивается с зажатой правой кнопкой мыши.
Дополнительная информация по обходу защиты в MMORPG.
Работает только с активным окном.


Необходимое устройство и установка ПО

1. Требуется плата Arduino micro или Arduino Leonardo. Заказать можно на Aliexpress.
2. Скачать и установить Arduino IDE. https://www.arduino.cc/en/software (Windows Win7 and newer)
3. Скачать и установить драйвер CH341SER (ссылка вначале темы).
4. Открыть Arduino IDE, пункт меню 'Инструменты', выбрать тип платы и порт.
5. Скачать архив arduino.zip (ссылка вначале темы) и извлечь его.
Файл arduino.lua закинуть в папку, в которой находится exe пилота.
Скетч загрузить в ардуино. Для этого скопировать содержимое файла Скетч.txt, вставить в Arduino IDE, нажать кнопку 'Загрузка'.

Требования

Пилот версии 2.41 или выше. Запускать от администратора.
Для работы функций мыши нужно в настройках мыши снять галочку 'Включить повышенную точность установки указателя'.
В функцию get_port (2341, 8036) нужно передавать vid и pid ардуино. Узнать их можно в Arduino IDE, пункт меню 'Инструменты', 'Получить информацию о плате'.
При переполнении буфера, хотя такого не должно быть, 3 секунды будет гореть встроенный светодиод L. В этом случае нужно увеличить паузы между нажатиями клавиш мыши/клавиатуры.
Все координаты в командах мыши указывать абсолютные, т. е. относительно левого верхнего угла экрана.

Список функций

get_port (vid, pid) -- узнать в каком com порте находится ардуино

set_delay_key (ms) -- установить задержку нажатий клавиатуры
set_delay_mouse (ms) -- установить задержку нажатий мыши
set_delay_mousemove(ms) -- установить паузу в мсек между каждым шагом перемещения курсора, чем меньше, тем быстрее перемещается курсор
set_offset_mousemove(step) -- шаг перемещения курсора от 1 до 127, чем больше, тем быстрее перемещается курсор.
set_random_delay_key(random) -- рандом в мсек между нажатием и отпусканием клавиш клавиатуры
set_random_delay_mouse(random) -- рандом в мсек между нажатием и отпусканием клавиш

key (code) -- нажать клавишу клавиатуры
text (text) -- отослать текст, в том числе русские символы
key_down (code) -- зажать (не отжимая) клавишу клавиатуры
key_up (code) -- отжать клавишу клавиатуры

mouse.move (x, y) -- переместить мышь
mouse.click (x, y, button) -- кликнуть мышью, button должен содержать код клавиши мыши (смотреть список клавиш)
mouse.left (x, y) -- клик левой кнопкой
mouse.right (x, y) -- клик правой кнопкой
mouse.middle (x, y) -- клик средней кнопкой
mouse.dbl (x, y, button) -- двойной клик, button должен содержать код клавиши мыши
mouse.left_dbl (x, y) -- двойной клик левой кнопкой мыши
mouse.right_dbl (x, y) -- двойной клик правой кнопкой мыши
mouse.middle_dbl (x, y) -- двойной клик средней кнопкой мыши
mouse.down (x, y, button) -- зажать (не отжимая) кнопку мыши, button должен содержать код клавиши мыши
mouse.left_down (x, y) -- зажать (не отжимая) левую кнопку мыши
mouse.right_down (x, y) -- зажать (не отжимая) правую кнопку мыши
mouse.middle_down (x, y) -- зажать (не отжимая) среднюю кнопку мыши
mouse.up (x, y, button) -- отжать кнопку мыши, button должен содержать код клавиши мыши
mouse.left_up (x, y) -- отжать левую кнопку мыши
mouse.right_up (x, y) -- отжать правую кнопку мыши
mouse.middle_up (x, y) -- отжать среднюю кнопку мыши
mouse.drag (x, y, x2, y2) -- зажать левую кнопку мыши в точке x y, переместить в точку x2 y2
mouse.wheel_up (x, y, count) -- прокручивание колёсика мыши вверх, count - насколько щелчков прокрутить
mouse.wheel_down (x, y, count) -- прокручивание колёсика мыши вниз, count - насколько щелчков прокрутить

Список многосимвольных клавиш

mouse_left_button = 1
mouse_right_button = 2
mouse_middle_button = 4

left_ctrl = 0x80
left_shift = 0x81
left_alt = 0x82
left_gui = 0x83
right_ctrl = 0x84
right_shift = 0x85
right_alt = 0x86
right_gui = 0x87
up_arrow = 0xDA
down_arrow = 0xD9
left_arrow = 0xD8
right_arrow = 0xD7
backspace = 0xB2
tab = 0xB3
enter = 0xB0
esc = 0xB1
insert = 0xD1
delete = 0xD4
page_up = 0xD3
page_down = 0xD6
home = 0xD2
["end"] = 0xD5
caps_lock = 0xC1
f1 = 0xC2
f2 = 0xC3
f3 = 0xC4
f4 = 0xC5
f5 = 0xC6
f6 = 0xC7
f7 = 0xC8
f8 = 0xC9
f9 = 0xCA
f10 = 0xCB
f11 = 0xCC
f12 = 0xCD
F1 = 0xC2
F2 = 0xC3
F3 = 0xC4
F4 = 0xC5
F5 = 0xC6
F6 = 0xC7
F7 = 0xC8
F8 = 0xC9
F9 = 0xCA
F10 = 0xCB
F11 = 0xCC
F12 = 0xCD

Пример использования клавиатуры

Код
--lua
local hw = require'arduino'
hw.com = hw.get_port (2341, 8036)    -- указать vid и pid ардуино
if hw.com < 1 then   -- если номер порта меньше 1
     log ('error = ' .. tostring(hw.com))    -- код ошибки, если 0 значит устройство с указанными vip и pid не найдено
     end_script ()
end
hw.set_delay_key (20)     -- установить паузу между нажатиями клавиш клавиатуры
hw.set_random_delay_key(10)  -- установить рандом между нажатием и отпускание клавиш от 0 до 9 мсек
-- т. е. между нажатием и отпусканием клавиши будет пауза от 20 до 29 мсек

wait (3000)    -- пауза 3 секунды чтобы переключиться на нужное окно
hw.key ('k')    -- нажать клавишу 'k'
hw.key (hw.enter)  -- нажать 'Enter'

wait (1000)   -- пауза 1 сек.

hw.key_down ('s')   -- зажать клавишу 's'
wait (3000)         -- пауза 3 сек., при этом клавиша будет зажата
hw.key_up ('s')     -- отпустить клавишу 's'
hw.key (hw.enter)   -- нажать 'Enter'

hw.text ('Hello Привет')  -- напечатать текст
hw.key ('V')    -- нажать Shift+'v'


Пример использования мыши
Код
--lua
local hw = require'arduino'
hw.com = hw.get_port (2341, 8036)    -- указать vid и pid ардуино
if hw.com < 1 then   -- если номер порта меньше 1
     log ('error = ' .. tostring(hw.com))    -- код ошибки
     end_script ()
end
hw.set_delay_mouse (20)   -- установить паузу между нажатиями клавиш мыши
hw.set_random_delay_mouse(10)  -- установить рандом между нажатиями клавиш мыши от 0 до 9 мсек
-- т. е. между нажатием и отпусканием кнопки мыши будет пауза от 20 до 29 мсек.
hw.set_offset_mousemove(4)  -- шаг перемещения курсора, чем больше тем быстрее перемещается
hw.set_delay_mousemove(2)  -- установить паузу между каждый шагом перемещения мыши, чем меньше, тем быстрее перемещается

hw.mouse.left (200, 100)      -- клик левой кнопкой мыши в координатах 200, 100
hw.mouse.right (200, 100)     -- клик правой кнопкой мыши
wait (3000)                   -- пауза 3 секунды
hw.mouse.left_dbl (35, 35)    -- двойной клик левой кнопкой мыши
wait (2000)
hw.mouse.left_down (200, 200) -- зажать левую кнопку мыши
wait(500)
hw.mouse.left_up (900, 300)   -- отпустить левую кнопку мыши



Сообщение отредактировал Fors1k - 14.12.2020, 20:00
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 20.1.2021, 0:36
Сообщение #2


**********

Elder
Сообщений: 3.153
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 20038
Пользователь №: 16.971
Возраст: 29



Цитата
а модуль Arduino.lua из "сообщения 17", чем отличается от модуля из шапки?

Только вывод в лог добавлен.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
cirus   Arduino   14.12.2020, 0:24
DarkMaster   Описание требований к арудино/закидывание скетчей ...   14.12.2020, 1:22
Fors1k   На случай если будет лень вбивать vid и pid: --lua...   17.12.2020, 18:38
KotMC   Скачал UO Pilot v2.41 (31.12.2018),Скетч и модуль ...   10.1.2021, 0:42
cirus   Ардуино micro или leonardo? Номер порта ардуино пр...   10.1.2021, 0:57
KotMC   pro micro. Если использовать этот скрипт --lua lo...   10.1.2021, 1:19
cirus   Значит порт недоступен для открытия. Попробуйте с...   10.1.2021, 2:00
KotMC   Совершенно верно, все работает. Только не на этом ...   10.1.2021, 2:11
cirus   text вместо key.   10.1.2021, 2:13
kyja   Подскажите как Arduino работает для виртуалок то е...   14.1.2021, 15:59
cirus   Без понятия. Команды Arduino получает через com п...   14.1.2021, 17:17
KotMC   Отрабатывает один раз, при повторном запуске UO Pi...   18.1.2021, 1:28
DarkMaster   Если во втором скрипте раскомментировать: Проблем...   18.1.2021, 1:41
KotMC   Если во втором скрипте раскомментировать: --hw.mo...   18.1.2021, 8:34
cirus   По какой-то причине порт не закрывается. В резуль...   18.1.2021, 1:45
DarkMaster   Хм... А можно как-то закрыть порт без ребута желе...   18.1.2021, 4:21
cirus   Пилот надо перезапускать в таких случаях. Порт от...   18.1.2021, 13:16
KotMC   Пилот надо перезапускать в таких случаях. Порт от...   18.1.2021, 21:48
KotMC   KotMC, этот файл в папку с пилотом закиньте Эт...   19.1.2021, 23:06
cirus   Попробуйте другие драйвера, они могут отличаться.   18.1.2021, 22:06
KotMC   Перепробовал много разных драйверов результат один...   19.1.2021, 3:17
cirus   Тут и стараться не надо. Остановка скрипта при от...   19.1.2021, 3:39
cirus   Можно. И не только в пилоте, а любой другой прогр...   19.1.2021, 23:46
KotMC   Про Arduino.dll понятно, а модуль Arduino.lua из ...   20.1.2021, 0:17
kyja   Подскажите пожалуйста как можно решить проблему кр...   28.1.2021, 1:32
kyja   Подскажите пожалуйста как можно решить проблему к...   1.2.2021, 1:28
cirus   hw.com = 3 -- 3й порт   1.2.2021, 1:42
kyja   hw.com = 3 -- 3й порт Большое спасибо   1.2.2021, 1:49
kyja   Подскажите а как используя Arduino.dll отправить н...   9.2.2021, 22:21
Fors1k   обычные буквы вообще не понял hw.key ('k...   10.2.2021, 0:05
kyja   --lua local ffi = require("ffi"...   10.2.2021, 0:20
KotMC   Если не ошибаюсь здесь ответ.   10.2.2021, 0:44
kyja   Если не ошибаюсь здесь ответ. Это мышка с ней пр...   10.2.2021, 0:52
KotMC   Сайт ардуино отправляет к этой табличке asciitable...   10.2.2021, 1:11
Fors1k   Сейчас установлю arduino, попробую dll.   10.2.2021, 1:16
Fors1k   Пробуйте. cirus придёт, может что подправит. --lua...   10.2.2021, 1:41
cirus   Можно так сделать: local enter = 0xB0 function _k...   10.2.2021, 2:00
kyja   Спасибо да табличка с кодами решила проблемы а fun...   10.2.2021, 23:13
kyja   Подскажите почему может не срабатывать рандом смеш...   19.2.2021, 0:50
cirus   Потому что они все неправильные. --lua math.rando...   19.2.2021, 1:46
KotMC   Скажите, а такое написание: hw.mouse.move (arr[1...   20.2.2021, 19:48
Madeus   hw.mouse.move (arr[1][1] + mat...   20.2.2021, 20:30
DarkMaster   И да и нет. Распределение будет близко к нормальн...   21.2.2021, 3:14
KotMC   "Вернулась" проблема с не закрытием порт...   22.2.2021, 23:50
cirus   Нужен минимальный код, который приводит к зависани...   23.2.2021, 0:15
KotMC   А зачем нам вообще этот драйвер из шапки, если у н...   23.2.2021, 0:19
kyja   Тоже периодически сталкивался с зависаниями но у м...   23.2.2021, 12:03
cirus   --lua local hw = require'arduino' hw.com ...   23.2.2021, 12:24
kyja   --lua local hw = require'arduino' hw.com ...   25.2.2021, 11:50
KotMC   При работе через модуль луа такая конструкция рабо...   23.2.2021, 12:36
KotMC   Сам спросил, сам отвечу для моего применения можно...   23.2.2021, 13:02
cirus   Потому что надо передавать координаты, в которых ...   23.2.2021, 13:02
KotMC   "Обрамил" всё что возможно выводом в лог...   23.2.2021, 17:11
cirus   В файле arduino.lua в строке mouse_pos('abs...   25.2.2021, 12:05


Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 1 KotMC

 

- Текстовая версия | Версия для КПК Сейчас: 27.2.2021, 13:08
Designed by Nickostyle