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

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


**********

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



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

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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
7 страниц V « < 3 4 5 6 7 >  
Ответить в эту темуОткрыть новую тему
Ответов(80 - 99)
Joaquin
сообщение 4.12.2021, 14:02
Сообщение #81


*

Registred
Сообщений: 2
Регистрация: 4.12.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.144



Добрый день. В первом посте написано, что работает только в активном окне. Kyja дальше в теме пишет про привязку к окну. Так можно все таки этот кликер к окну привязать?

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 4.12.2021, 17:46
Сообщение #82


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8556
Пользователь №: 19.451
Возраст: 32



Ctrl + A или findwindow, workwindow. Примеры тут
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 18.2.2022, 0:37
Сообщение #83


***

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



Подскажите пожалуйста почему происходит клик в 2 точки
то есть сначала идет клик в найденный пиксель все ок
а потом моментальный второй клик в другую точку

в настройках скетча ардуино стоит
int MOUSE_DELAY = 5;
int MOUSE_MOVE_DELAY = 35;
int MOUSE_MOVE_OFFSET = 30;
int RANDOM_KEY = 20;
int RANDOM_MOUSE = 0;

то есть второй клик именно моментален хотя в первый клик мышь едет плавно как по настройкам а вот второй резкий сразу как будто игнорируются настройки
int MOUSE_MOVE_DELAY = 35;
int MOUSE_MOVE_OFFSET = 30;
но и в целом второго клика по идее быть не должно

Код
local Time = 32.235  --время работы таймера
                 local endTimer = os.clock() + Time while os.clock() <= endTimer do
                    local a = findcolor([[611, 462 1291, 677  1 1 ( 0xeeeeee-0xffffff ) %arr 2 -1 0]])  -- Цвет

                    if a > 0 then     -- если найден цвет
                    wait (1095 + math.random (30))
                    log (arr [1][1])
                    log (arr [1][2])
                    hw.mouse.left (arr [1][1], arr [1][2])
                    log (arr [1][1])
                    log (arr [1][2])
                    wait (1095 + math.random (30))
                    goto end_this_find
                    end

                    if color(1722, 638  ) ~= 16777215  then --нет каста
                    wait (585 + math.random (30))
                    break
                    end
            end
            ::end_this_find::


При использование
hw.mouse.move (arr [1][1], arr [1][2])
такой проблемы нет

arduino.lua во вложение


Прикрепленные файлы
Прикрепленный файл  arduino.lua ( 22,36 килобайт ) Кол-во скачиваний: 69
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kdv
сообщение 11.3.2022, 17:36
Сообщение #84


**

Neophyte
Сообщений: 24
Регистрация: 23.3.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.927
Возраст: 40



Вроде все делал как надо, но :Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.3.2022, 1:43
Сообщение #85


**********

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



Нужна плата с контролером ATmega32u4.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kdv
сообщение 12.3.2022, 9:34
Сообщение #86


**

Neophyte
Сообщений: 24
Регистрация: 23.3.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.927
Возраст: 40



А работа с другими платами возможна с uopilot?
У меня плата микро-контроллера Atmega328
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.3.2022, 10:03
Сообщение #87


**********

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



Цитата
А работа с другими платами возможна с uopilot?
У меня плата микро-контроллера Atmega328

Дело не в пилоте, а в том что только платы с ATmega32u4 могут эмулировать работу мыши и клавиатуры.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kdv
сообщение 12.3.2022, 10:50
Сообщение #88


**

Neophyte
Сообщений: 24
Регистрация: 23.3.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.927
Возраст: 40



Печально (IMG:style_emoticons/default/sad.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.3.2022, 22:32
Сообщение #89


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27901
Пользователь №: 11.279



Цитата
Дело не в пилоте, а в том что только платы с ATmega32u4 могут эмулировать работу мыши и клавиатуры.

Cockney мне вроде объяснял, что можно и на другой плате, просто придется перепрошивать микропрограмму самого контроллера.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 18.3.2022, 1:42
Сообщение #90


**********

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



Цитата
перепрошивать микропрограмму самого контроллера.

Проще купить нужную железку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kdv
сообщение 13.5.2022, 20:24
Сообщение #91


**

Neophyte
Сообщений: 24
Регистрация: 23.3.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.927
Возраст: 40



Добрый вечер, продолжил эпопею с Arduino. Она заработала, но вот выполняется скрипт 1 раз. А как его можно N ое раз повторить ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 13.5.2022, 22:17
Сообщение #92


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8556
Пользователь №: 19.451
Возраст: 32



В цикле while, for.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kdv
сообщение 14.5.2022, 10:04
Сообщение #93


**

Neophyte
Сообщений: 24
Регистрация: 23.3.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.927
Возраст: 40



Цитата(Madeus @ 13.5.2022, 22:17) *

В цикле while, for.

Попробовал FOR
Код

for #i 1 10
wait (3000)
hw.key (0xC2)
end_for

ругается, не нравится "#"
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 14.5.2022, 12:44
Сообщение #94


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27901
Пользователь №: 11.279



Потому что синтаксис должен быть Lua.
Код
--lua
for i =1, 10 do
    -- ваш код
end


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kdv
сообщение 14.5.2022, 15:19
Сообщение #95


**

Neophyte
Сообщений: 24
Регистрация: 23.3.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.927
Возраст: 40



Цитата(DarkMaster @ 14.5.2022, 12:44) *

Потому что синтаксис должен быть Lua.
Код
--lua
for i =1, 10 do
    -- ваш код
end



А если через Arduino, то только через Lua ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 14.5.2022, 17:20
Сообщение #96


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27901
Пользователь №: 11.279



Цитата
А если через Arduino, то только через Lua ?

Да.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Gals
сообщение 24.8.2022, 10:39
Сообщение #97


***

Novice
Сообщений: 57
Регистрация: 15.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.869



Я пока не понимаю ничего в arduino.
И совсем не понимаю в модуле lua.
Но нашел в интернете такую штуку, которая вроде дешевле чем ардуино в 2 раза. Програмируется так же через ide arduino.

https://aliexpress.ru/popular/digispark.html

С этим будет работать?
В Интернете пишут, что мыш и клаву оно умеет эмулировать
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.8.2022, 13:37
Сообщение #98


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27901
Пользователь №: 11.279



Это бы лучше у ардуинщиков спросить. Цена вопроса 100р - можно затестить.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 9.2.2023, 22:25
Сообщение #99


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8556
Пользователь №: 19.451
Возраст: 32



На 11 винде кто-то пользуется? Перебрал кучу дров разных эффекта ноль. На 10ке эта плата работает.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Gwyn
сообщение 10.4.2023, 17:37
Сообщение #100


*

Registred
Сообщений: 2
Регистрация: 10.4.2023
Группа: Пользователи
Наличность: 0
Пользователь №: 20.512



Я так понял ардуино не умеет в мультиоконку и может кликать только в открытое окно?
Чет не понятно, кому вообще нужен кликер под одно окно? Проще тогда использовать обычные макросные мыши ( x7, razer и тд) Они то же самое могут. Зачем с этим ардуино заморачиваться...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

7 страниц V « < 3 4 5 6 7 >
Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 

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