IPB Предупреждение [2] A non-numeric value encountered (Строка: 3050 файла /sources/ipsclass.php)
Arduino - UoKit.com Форумы
 

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

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


**********

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



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

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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
kyja
сообщение 28.1.2021, 1:32
Сообщение #2


***

Novice
Сообщений: 85
Регистрация: 29.10.2016
Группа: Пользователи
Наличность: 1
Пользователь №: 18.164



Подскажите пожалуйста как можно решить проблему крайне медленной работы на vmware workstation 16?
Фактически все работает но время выполнения просто огромное, на virtualbox такой проблемы нету вообще там все как на обычном пк все отрабатывает согласно задержкам
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 1.2.2021, 1:28
Сообщение #3


***

Novice
Сообщений: 85
Регистрация: 29.10.2016
Группа: Пользователи
Наличность: 1
Пользователь №: 18.164



Цитата(kyja @ 28.1.2021, 1:32) *

Подскажите пожалуйста как можно решить проблему крайне медленной работы на vmware workstation 16?
Фактически все работает но время выполнения просто огромное, на virtualbox такой проблемы нету вообще там все как на обычном пк все отрабатывает согласно задержкам

Если кому то интересно то для vmware это решилось с помощью USB over Network офсайт но так же она есть на торентах (странно конечно что родное подключение от vmware работает хуже чем стороний софт при по сути одинаковой логике проброса юсб у обоих через tcp/ip если не ошибаюсь) возможно это глюк именно для arduino потому что если замерить скорость флешки через CrystalDiskMark то разница у хоста и виртаулки будет всего 5-15% но проброшенный arduino работает в ~500 раз медленней чем на хосте

И еще вопрос вомзожно ли подключатся не через
Код
hw.com = hw.get_port (2341, 8036)    -- указать vid и pid ардуино

vid и pid а через например номер com порта?
у них ведь у всех он одинаков и если запустить несколько пилотов он ведь не поймет к какому именно устройству надо подсоединятся


Код
--lua
require"luaposh";hw=require"arduino";log"clear"

hw.com = PScode('R',{[[$Return=Get-ArduinoPort]]})
if type(hw.com) ~= "number" then
    log("ERROR\n"..hw.com)
    end_script()
end

hw.mouse.move(400, 200)

Или это и есть способ подключатся именно к определенному com порту? (у меня не получилось)
Пользователь в офлайне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
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
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 >


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

 

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