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

7 страниц V « < 2 3 4 5 6 > »   
Ответить в эту темуОткрыть новую тему
> Arduino, Нажатия мыши и клавиатуры в обход защиты от кликеров
kyja
сообщение 6.5.2021, 0:55
Сообщение #61


***

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



Цитата(KotMC @ 23.2.2021, 17:11) *

"Обрамил" всё что возможно выводом в лог, получается следующие.

Пилот зависает (открывает порт без закрытия) всегда в одном и том же месте:

Код

hw.set_port(com)
hw.set_delay_mouse (100)            -- установить паузу между нажатиями клавиш мыши
hw.set_random_delay_mouse(50)    -- установить рандом между нажатиями клавиш мыши
hw.set_offset_mousemove(5)        -- шаг перемещения курсора, чем больше тем быстрее перемещается
hw.set_delay_mousemove(5)        -- установить паузу между каждый шагом перемещения мыши, чем меньше, тем быстрее перемещается
hw.set_delay_key (300)            -- установить задержку нажатий клавиатуры
hw.set_random_delay_key(10)        -- рандом в мсек между нажатием и отпусканием клавиш клавиатуры


Проявляется как при использовании луа модуля, так и dll.


Пробовали убрать из кода пилота эти строки и убрать из arduino.lua
Код
export_array.delay_key = 120   -- пауза между нажатиями клавиш. Только чтение, изменение через set_delay_key.
export_array.delay_mouse = 90 -- пауза между нажатием и отпусканием кнопок мыши. Только чтение, изменение через set_delay_mouse.
export_array.delay_mousemove = 35  -- пауза при перемещении курсора
export_array.offset_mousemove = 30 -- смещение курсора по x и y при перемещении мыши
export_array.random_delay_key = 0  -- рандом между нажатием и отпусканием клавиши клавиатуры
export_array.random_delay_mouse = 0  -- рандом между нажатием и отпусканием клавиши мыши


оставить только
export_array.com = 3 -- номер порта

А сами значения прописывать именно в скетче?
Код
int KEYBOARD_DELAY = 120;
int MOUSE_DELAY = 90;
int MOUSE_MOVE_DELAY = 35;
int MOUSE_MOVE_OFFSET = 30;
int RANDOM_KEY = 30;
int RANDOM_MOUSE = 20;


Вообще там есть закономерность при которой пилот виснет на этих строках
Она в типе подключения самого ардуино но я пока не уловил точный принцип как пойму отпишусь
В моем случаи это подключение к vmware
Но скорее всего к обычному пк тот же принцип будет
Код
hw.set_delay_mouse (100)            -- установить паузу между нажатиями клавиш мыши
hw.set_random_delay_mouse(50)    -- установить рандом между нажатиями клавиш мыши
hw.set_offset_mousemove(5)        -- шаг перемещения курсора, чем больше тем быстрее перемещается
hw.set_delay_mousemove(5)        -- установить паузу между каждый шагом перемещения мыши, чем меньше, тем быстрее перемещается
hw.set_delay_key (300)            -- установить задержку нажатий клавиатуры
hw.set_random_delay_key(10)        -- рандом в мсек между нажатием и отпусканием клавиш клавиатуры
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 6.5.2021, 20:56
Сообщение #62


**

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



цитата

Цитата(kyja @ 6.5.2021, 0:55) *

Пробовали убрать из кода пилота эти строки и убрать из arduino.lua
Код
export_array.delay_key = 120   -- пауза между нажатиями клавиш. Только чтение, изменение через set_delay_key.
export_array.delay_mouse = 90 -- пауза между нажатием и отпусканием кнопок мыши. Только чтение, изменение через set_delay_mouse.
export_array.delay_mousemove = 35  -- пауза при перемещении курсора
export_array.offset_mousemove = 30 -- смещение курсора по x и y при перемещении мыши
export_array.random_delay_key = 0  -- рандом между нажатием и отпусканием клавиши клавиатуры
export_array.random_delay_mouse = 0  -- рандом между нажатием и отпусканием клавиши мыши


оставить только
export_array.com = 3 -- номер порта

А сами значения прописывать именно в скетче?
Код
int KEYBOARD_DELAY = 120;
int MOUSE_DELAY = 90;
int MOUSE_MOVE_DELAY = 35;
int MOUSE_MOVE_OFFSET = 30;
int RANDOM_KEY = 30;
int RANDOM_MOUSE = 20;


Вообще там есть закономерность при которой пилот виснет на этих строках
Она в типе подключения самого ардуино но я пока не уловил точный принцип как пойму отпишусь
В моем случаи это подключение к vmware
Но скорее всего к обычному пк тот же принцип будет
Код
hw.set_delay_mouse (100)            -- установить паузу между нажатиями клавиш мыши
hw.set_random_delay_mouse(50)    -- установить рандом между нажатиями клавиш мыши
hw.set_offset_mousemove(5)        -- шаг перемещения курсора, чем больше тем быстрее перемещается
hw.set_delay_mousemove(5)        -- установить паузу между каждый шагом перемещения мыши, чем меньше, тем быстрее перемещается
hw.set_delay_key (300)            -- установить задержку нажатий клавиатуры
hw.set_random_delay_key(10)        -- рандом в мсек между нажатием и отпусканием клавиш клавиатуры



У меня зависания в процессе работы скрипта ушли.
По не знанию или не опытности, в первых моих скриптах "конфигурационные" параметры относящиеся к ардуино, я прописал в основном цикле который примерно раз в минуту начинался с начала. И как я понимаю из за частого установки этих параметров у меня были проблемы. Сейчас я эти параметры объявляю один раз в начале скрипта все циклы получаются за ними и вроде проблем нет.
Остался всего один момент, но он не критичен для меня, при запуске скрипта 1 раз из 100, пилот "вешается"(наверняка где-то, я опять напортачил в написание скрипта), но повторюсь если скрипт запустился он работает очень долго без зависаний и т.д.. Доходило до 2х недель без прерывной работы, наверняка могло быть и дольше, скрипт выключил сам.

kyja Спасибо, за участие!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 6.5.2021, 21:23
Сообщение #63


***

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



Цитата(KotMC @ 6.5.2021, 20:56) *

1 раз из 100, пилот "вешается"

У вас скрипт работает в одной вкладке или например используется
start_script (2, "wait")
По окончанию 2 возврат в 1 скрипт (2 скрипт тоже ардуиновский)
Или просто скрипт из одной вкладки?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 7.5.2021, 19:44
Сообщение #64


**

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



Цитата(kyja @ 6.5.2021, 21:23) *

У вас скрипт работает в одной вкладке или например используется
start_script (2, "wait")
По окончанию 2 возврат в 1 скрипт (2 скрипт тоже ардуиновский)
Или просто скрипт из одной вкладки?


Одна вкладка, один скрипт.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 31.7.2021, 1:24
Сообщение #65


***

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



Подскажите пожалуйста можно ли каким то образом не прибегая к
hw.key_down hw.key_up
зажатию кнопок отправить содержимое буфера?
что то вроде
hw.key (hw.clipboard)
по сути просто контрл+v но без hw.key_down hw.key_up

local text = clipboard ()
hw.text (text)
так будет именно печатается все что в буфере

Проблема в том что у меня при использование
hw.key_down hw.key_up mouse.left_down mouse.right_down все что связано с зажатиями периодически виснит скрипт
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 31.7.2021, 1:36
Сообщение #66


**********

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



Цитата
можно ли каким то образом не прибегая к
hw.key_down hw.key_up
зажатию кнопок отправить содержимое буфера?

Нельзя.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 31.7.2021, 1:36
Сообщение #67


***

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



Цитата(cirus @ 31.7.2021, 1:36) *

Нельзя.

Понял, спасибо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Crocotea
сообщение 19.8.2021, 20:47
Сообщение #68


***

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



В свзяи с чем может быть проблема?
в диспетчере устройств отображается корректно микро ком 8
в самом адруино выставил свою плату и порт
Гет порт вписал свой из "получить инф о плате"

Код
20:41:23 6 (test.txt, 0): a runtime error.
59: attempt to call field 'Key' (a nil value)
--lua
local hw = require 'arduino'
hw.com = hw.get_port (2341, 8037)    -- указать vid и pid ардуино
if hw.com < 1 then   -- если номер порта меньше 1
     log ('err


Код
--lua
local hw = require 'arduino'
hw.com = hw.get_port (2341, 8037)    -- указать 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)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 20.8.2021, 1:38
Сообщение #69


**********

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



Приведённый код работает.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 24.8.2021, 12:35
Сообщение #70


***

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



Подскажите как определить зажатие клавиш при использование ардуино
беру код с
https://forum.uokit.com/index.php?showtopic...%E0%E2%E8%F8%E8

Код

--lua
log 'clear' log 'mode compact'
wait (627 + math.random (30))
--local hw = require'arduino'
math.randomseed(os.clock())            --функция рандома
function rand(x, y, x_plus, y_plus, x_minus, y_minus)
return x+math.random(x_minus, x_plus), y+math.random(y_minus, y_plus)
end                                     --функция рандома
--проверка клавиш
do
    local back = package.path
    package.path = "luaPlugins\\winapi\\?.lua;"..package.path
    setfenv(1, require'winapi')
    require[[winapi.keyboard]]
    package.path = back
end
--проверка клавиш

-- проверка нажата ли клавиша Z
while 1 do
    local state = GetKeyState(90)  -- или  GetKeyState(0x5A)
    if  state then
        log ("Z нажата")
    else
        log ("Z не нажата")
    end
    wait (100)
end


При закоментированом --local hw = require'arduino'
все отлично работает

Если раскоментировать то выдает ошибку


Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.8.2021, 13:11
Сообщение #71


**********

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



Цитата
Подскажите как определить зажатие клавиш при использование ардуино

Код
--lua
local ffi = require("ffi")
ffi.cdef[[ short GetAsyncKeyState(int vKey); ]]
log 'clear' log 'mode compact'
local hw = require'arduino'

-- проверка нажата ли клавиша Z
while 1 do
    local state = ffi.C.GetAsyncKeyState(90)
    if  state ~= 0 then
        log ("Z нажата")
    else
        log ("Z не нажата")
    end
    wait (100)
end

Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 24.8.2021, 15:25
Сообщение #72


***

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



Большое спасибо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 29.8.2021, 23:55
Сообщение #73


***

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



Цитата(cirus @ 24.8.2021, 13:11) *

Код
--lua
local ffi = require("ffi")
ffi.cdef[[ short GetAsyncKeyState(int vKey); ]]
log 'clear' log 'mode compact'
local hw = require'arduino'

-- проверка нажата ли клавиша Z
while 1 do
    local state = ffi.C.GetAsyncKeyState(90)
    if  state ~= 0 then
        log ("Z нажата")
    else
        log ("Z не нажата")
    end
    wait (100)
end



Почему то периодически но крайне редко, не определяет что правая кнопка не зажалась
Код

------------------------зажимаю правую
local x, y = mouse_pos ()
wait (325 + math.random (30))
hw.mouse.right_down (x, y) -- зажать правую в позиции
wait (325 + math.random (30))
------------------------зажимаю правую


    -------------проверка что правая зажалась---------
local state = ffi.C.GetAsyncKeyState(2)
    if  state ~= 0 then
        --log ("нажата")
    else
       ------------------------зажимаю правую
local x, y = mouse_pos ()
wait (325 + math.random (30))
hw.mouse.right_down (x, y) -- зажать правую в позиции
wait (325 + math.random (30))
------------------------зажимаю правую
    end
-------------проверка что правая зажалась---------

В тестах всегда все ок а вот когда скрипт работает иногда не проходит проверка
Не хватает задержек или какой то еще вариант может быть?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
1dark1
сообщение 5.10.2021, 12:38
Сообщение #74


*

Registred
Сообщений: 4
Регистрация: 4.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.757
Возраст: 25



Привет.
Можете сказать как правильно составить команды для отправки через cmd
Код
echo 2 text > COM7

работает
Код
echo 1 t > COM7

не работает (пример на любой букве если можно)
Код
echo 5 (100,100) > COM7

мышь двигается только вниз(если поставить минус(-100,100) то верх но не влево вправо),как двигать в любом направлении
Код
echo 6  > COM7

тут я даже не знаю что вставлять после '6' пробывал цифры и (Mouse.click) никакой реакции

Вообщем если не затруднит напишите , может еще кому понадобиться тоже.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.10.2021, 13:01
Сообщение #75


**********

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



В файле arduino.lua можно посмотреть что отправляет нужная функция.
Цитата
пример на любой букве если можно

Код
echo 1116>COM7

Напишет букву t. 1 - означает нажать клавишу, 116 - это код клавиши.
Цитата
мышь

Код
echo 5++19660700>COM7

Переместит курсор на 300 пикселей вправо и на 200 вниз. Первый + означает что курсор смещается вправо, - будет означать влево, второй + означает смещать вниз, - это вверх. Число 19660700 считается так: 300*0xFFFF+200 или так если понятнее 300*65535+200.
Цитата
Mouse.click

Код
echo 61>COM7

Клик левой кнопкой мыши. 62 правой, 64 средней.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
1dark1
сообщение 5.10.2021, 21:27
Сообщение #76


*

Registred
Сообщений: 4
Регистрация: 4.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.757
Возраст: 25



Цитата(cirus @ 5.10.2021, 13:01) *


Код
echo 5++19660700>COM7

Переместит курсор на 300 пикселей вправо и на 200 вниз. Первый + означает что курсор смещается вправо, - будет означать влево, второй + означает смещать вниз, - это вверх. Число 19660700 считается так: 300*0xFFFF+200 или так если понятнее 300*65535+200.




Спасибо за примеры (буквы сам я пробывал с "0x116")появился только вопрос по скорости перемещения мыши его каким образом регулировать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 6.10.2021, 1:40
Сообщение #77


**********

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



Цитата
вопрос по скорости перемещения мыши его каким образом регулировать?

Код
echo 025>COM7

02 - установить паузу между каждым шагом перемещения курсора, 5 - пауза в мсек. Чем больше пауза тем медленнее перемещается курсор.
Код
echo 031>COM7

03 - установить шаг перемещения курсора. 1 - шаг. Чем больше, тем быстрее перемещается курсор. Шаг может быть от 1 до 127.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
1dark1
сообщение 6.10.2021, 16:47
Сообщение #78


*

Registred
Сообщений: 4
Регистрация: 4.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.757
Возраст: 25



Спасибо за пояснения
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Kangoshi
сообщение 10.11.2021, 0:43
Сообщение #79


**

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



А как нажимать кнопки с numpad'а? Есть что-то похожее на это: hw.key (hw.F1)? Или только кодами?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 10.11.2021, 1:57
Сообщение #80


**********

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



Цитата
Есть что-то похожее на это: hw.key (hw.F1)?

Можно добавить в файл arduino.lua:
Код
export_array.KEYPAD_4 = 228

Либо в скрипте:
Код
local KEYPAD_4 = 228

тогда вызов будет таким:
Код
hw.key (KEYPAD_4) 


Коды клавиш:
Код
local KEYPAD_0 = 234
local KEYPAD_1 = 225
local KEYPAD_2 = 226
local KEYPAD_3 = 227
local KEYPAD_4 = 228
local KEYPAD_5 = 229
local KEYPAD_6 = 230
local KEYPAD_7 = 231
local KEYPAD_8 = 232
local KEYPAD_9 = 233

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

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

 

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