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

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


**********

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



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

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)   -- отпустить левую кнопку мыши



Сообщение отредактировал cirus - 11.7.2023, 2:17
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
KotMC
сообщение 23.2.2021, 12:36
Сообщение #2


**

Neophyte
Сообщений: 34
Регистрация: 10.1.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.851
Возраст: 36



При работе через модуль луа такая конструкция работала
...
hw.mouse.move (arrP[1][1], arrP[1][2])
wait (300 + math.random (100))
hw.mouse.left_down () -- зажать левую кнопку мыши
wait (300 + math.random (100))
hw.mouse.move (arrP[1][1], arrP[1][2] + (2 + math.random (3)))
wait (300 + math.random (100))
hw.mouse.left_up () -- отжать левую кнопку мыши
...

клик (зажатие) проходил

При работе через dll уже, не работает
...
hw.mouse_move (arrP[1][1], arrP[1][2])
wait (300 + math.random (100))
hw.mouse_left_down () -- зажать левую кнопку мыши
wait (300 + math.random (100))
hw.mouse_move (arrP[1][1], arrP[1][2] + (2 + math.random (3)))
wait (300 + math.random (100))
hw.mouse_left_up () -- отжать левую кнопку мыши
...

Пилот ругается на не правильный аргумент в строке "hw.mouse_left_down () и hw.mouse_left_up ()", возможно ли сделать клик (зажатие, отпускание), в том месте где уже находится курсор?
Пользователь в офлайне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
cirus   Только вывод в лог добавлен.   20.1.2021, 0:36
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, 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
Madeus   Замечена такая проблема, если подключать arduino п...   8.4.2021, 20:50
cirus   Выкладывайте код, который вызывает ошибку.   9.4.2021, 1:34
Madeus   Выкладывайте код, который вызывает ошибку. --lua...   9.4.2021, 1:54
cirus   Обновил архив в первом посте, теперь не должно быт...   9.4.2021, 2:39
Madeus   Обновил архив в первом посте, теперь не должно бы...   9.4.2021, 12:28
kyja   "Обрамил" всё что возможно выводом в ло...   6.5.2021, 0:55
KotMC   [quote name='kyja' post='441030' date='6.5.2021, ...   6.5.2021, 20:56
kyja   1 раз из 100, пилот "вешается" У вас с...   6.5.2021, 21:23
KotMC   У вас скрипт работает в одной вкладке или наприме...   7.5.2021, 19:44
kyja   Подскажите пожалуйста можно ли каким то образом не...   31.7.2021, 1:24
cirus   Нельзя.   31.7.2021, 1:36
kyja   Нельзя. Понял, спасибо   31.7.2021, 1:36
Crocotea   В свзяи с чем может быть проблема? в диспетчере ус...   19.8.2021, 20:47
cirus   Приведённый код работает.   20.8.2021, 1:38
kyja   Подскажите как определить зажатие клавиш при испол...   24.8.2021, 12:35
cirus   --lua local ffi = require("ffi") ...   24.8.2021, 13:11
kyja   [code]--lua local ffi = require("ffi...   29.8.2021, 23:55
kyja   Большое спасибо   24.8.2021, 15:25
1dark1   Привет. Можете сказать как правильно составить ком...   5.10.2021, 12:38
cirus   В файле arduino.lua можно посмотреть что отправляе...   5.10.2021, 13:01
1dark1   echo 5++19660700>COM7 Переместит курсор на 3...   5.10.2021, 21:27
cirus   echo 025>COM7 02 - установить паузу между каж...   6.10.2021, 1:40
1dark1   Спасибо за пояснения   6.10.2021, 16:47
Kangoshi   А как нажимать кнопки с numpad'а? Есть что-то ...   10.11.2021, 0:43
cirus   Можно добавить в файл arduino.lua: export_array.K...   10.11.2021, 1:57
Joaquin   Добрый день. В первом посте написано, что работает...   4.12.2021, 14:02
Madeus   Ctrl + A или findwindow, workwindow. Примеры тут   4.12.2021, 17:46
kyja   Подскажите пожалуйста почему происходит клик в 2 т...   18.2.2022, 0:37
kdv   Вроде все делал как надо, но :   11.3.2022, 17:36
cirus   Нужна плата с контролером ATmega32u4.   12.3.2022, 1:43
kdv   А работа с другими платами возможна с uopilot? У м...   12.3.2022, 9:34
cirus   Дело не в пилоте, а в том что только платы с ATme...   12.3.2022, 10:03
kdv   Печально :(   12.3.2022, 10:50
DarkMaster   Cockney мне вроде объяснял, что можно и на другой...   17.3.2022, 22:32
cirus   Проще купить нужную железку.   18.3.2022, 1:42
kdv   Добрый вечер, продолжил эпопею с Arduino. Она зара...   13.5.2022, 20:24
Madeus   В цикле while, for.   13.5.2022, 22:17
kdv   В цикле while, for. Попробовал FOR for #i 1 10 ...   14.5.2022, 10:04
DarkMaster   Потому что синтаксис должен быть Lua. --lua for i ...   14.5.2022, 12:44
kdv   Потому что синтаксис должен быть Lua. --lua for i...   14.5.2022, 15:19
DarkMaster   Да.   14.5.2022, 17:20
Gals   Я пока не понимаю ничего в arduino. И совсем не по...   24.8.2022, 10:39
DarkMaster   Это бы лучше у ардуинщиков спросить. Цена вопроса ...   25.8.2022, 13:37
Madeus   На 11 винде кто-то пользуется? Перебрал кучу дров ...   9.2.2023, 22:25
Gwyn   Я так понял ардуино не умеет в мультиоконку и може...   10.4.2023, 17:37
2 страниц V  1 2 >


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

 

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