Эмуляция движения курсора мыши в ZennoPoster [Дон шампиньон]

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 856
Баллы
113
Недавно был один трастовый ресурс, который при регистрации палил движение курсора. И если курсор не двигался, то он автоматически вываливал ошибку при регистрации. Я вначале тупил и не понимал в чём дело, но друг подкинул эту мысль с эмуляцией мыши и она частично сработала (т.к. при запуске во многопотоке он ещё что-то палил, но я так до конца и не разобрался).

Данный сниппет - это модификация чьего-то кода, скорее всего даже не юзеров зенки - не помню где я его нашел)

Код:
int x = Convert.ToInt32(project.Variables["element_left"].Value);
int y = Convert.ToInt32(project.Variables["element_top"].Value);

Random rnd = new Random();
x += rnd.Next(50, 200);
y += rnd.Next(50, 200);

// массив точек, по которым будет двигаться курсор мыши
Point[] points = new Point[10]
{
    new Point(x, y),
    new Point(x + 10, y + 5),
    new Point(x + 20, y + 10),
    new Point(x + 30, y + 15),
    new Point(x + 40, y + 20),
    new Point(x + 50, y + 25),
    new Point(x + 60, y + 30),
    new Point(x + 70, y + 35),
    new Point(x + 80, y + 40),
    new Point(x + 90, y + 45)
};

// случайные задержки между движениями
int[] delay = new int[10] {
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150)
};

// функция, выполняющая движение по заданной траектории с указанными задержками
instance.ActiveTab.MouseMove(points, delay, false);

Вам нужно указать числовые значения в переменных element_left и element_top, у меня это были leftInTab и topInTab для какого-то html-тега на странице. По факту вы же можете поставить туда рандомные значения, чтобы курсор в своем начальном положении находился где-то в середине страницы (можно посчитать), ну или ввести туда просто значения от 200 до 500, например (ведь мало у кого браузеры меньше 500 пикселей в ширину/высоту).

Фактически - такое встречается очень редко, но иногда данный код вам может здорово помочь! Единственное, что я бы тут ещё дополнительно отметил - стоит "поиграться" и придумать как делать больше движений и "рисовать" курсором мыши более сложные движения.
Я же использовал этот сниппет для ZennoPoster следующим образом: я ставил его перед каждым заполнением нового input'а, чтобы сэмулировать движение мыши к нему от предыдущего элемента.
 

ksander

Client
Регистрация
17.06.2016
Сообщения
272
Благодарностей
34
Баллы
28
Зачет с меня +
Тут на самом деле можно поиграться!
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 320
Благодарностей
5 424
Баллы
113
Благодарю, забрал в коллекцию.
 
Последнее редактирование:

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
311
Благодарностей
195
Баллы
43
Недавно был один трастовый ресурс, который при регистрации палил движение курсора. И если курсор не двигался, то он автоматически вываливал ошибку при регистрации. Я вначале тупил и не понимал в чём дело, но друг подкинул эту мысль с эмуляцией мыши и она частично сработала (т.к. при запуске во многопотоке он ещё что-то палил, но я так до конца и не разобрался).

Данный сниппет - это модификация чьего-то кода, скорее всего даже не юзеров зенки - не помню где я его нашел)

Код:
int x = Convert.ToInt32(project.Variables["element_left"].Value);
int y = Convert.ToInt32(project.Variables["element_top"].Value);

Random rnd = new Random();
x += rnd.Next(50, 200);
y += rnd.Next(50, 200);

// массив точек, по которым будет двигаться курсор мыши
Point[] points = new Point[10]
{
    new Point(x, y),
    new Point(x + 10, y + 5),
    new Point(x + 20, y + 10),
    new Point(x + 30, y + 15),
    new Point(x + 40, y + 20),
    new Point(x + 50, y + 25),
    new Point(x + 60, y + 30),
    new Point(x + 70, y + 35),
    new Point(x + 80, y + 40),
    new Point(x + 90, y + 45)
};

// случайные задержки между движениями
int[] delay = new int[10] {
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150)
};

// функция, выполняющая движение по заданной траектории с указанными задержками
instance.ActiveTab.MouseMove(points, delay, false);

Вам нужно указать числовые значения в переменных element_left и element_top, у меня это были leftInTab и topInTab для какого-то html-тега на странице. По факту вы же можете поставить туда рандомные значения, чтобы курсор в своем начальном положении находился где-то в середине страницы (можно посчитать), ну или ввести туда просто значения от 200 до 500, например (ведь мало у кого браузеры меньше 500 пикселей в ширину/высоту).

Фактически - такое встречается очень редко, но иногда данный код вам может здорово помочь! Единственное, что я бы тут ещё дополнительно отметил - стоит "поиграться" и придумать как делать больше движений и "рисовать" курсором мыши более сложные движения.
Я же использовал этот сниппет для ZennoPoster следующим образом: я ставил его перед каждым заполнением нового input'а, чтобы сэмулировать движение мыши к нему от предыдущего элемента.
Этот код был для разгадывания капч на буксе ojooo, я его тоже использовал, а ты для какого ресурса его выкатываешь если не секрет)
 
  • Спасибо
Реакции: Dimionix

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 856
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113
Для тех, кому нужена эмуляция посерьезнее, чтобы вебвизор от яндекса не палил или можно было без палева регать гмейл акки - советую: Humaniation - библиотека эмулирующая "человеческие" траектории мыши
Блин, оно, решение, целое состояние стоит. :(
 

ksander

Client
Регистрация
17.06.2016
Сообщения
272
Благодарностей
34
Баллы
28
Для тех, кому нужена эмуляция посерьезнее, чтобы вебвизор от яндекса не палил или можно было без палева регать гмейл акки - советую: Humaniation - библиотека эмулирующая "человеческие" траектории мыши
А рекламировать не стоит свою продукцию, тут такто обсуждение данного варианта
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 856
Баллы
113

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 856
Баллы
113
А рекламировать не стоит свою продукцию, тут такто обсуждение данного варианта
Даже не знаю что на это сказать :D Может стоит посмотреть кто где автор и сравнить?)
 

ksander

Client
Регистрация
17.06.2016
Сообщения
272
Благодарностей
34
Баллы
28

Juniorcpa

Client
Регистрация
27.05.2014
Сообщения
2 031
Благодарностей
1 285
Баллы
113
Недавно был один трастовый ресурс, который при регистрации палил движение курсора. И если курсор не двигался, то он автоматически вываливал ошибку при регистрации. Я вначале тупил и не понимал в чём дело, но друг подкинул эту мысль с эмуляцией мыши и она частично сработала (т.к. при запуске во многопотоке он ещё что-то палил, но я так до конца и не разобрался).

Данный сниппет - это модификация чьего-то кода, скорее всего даже не юзеров зенки - не помню где я его нашел)

Код:
int x = Convert.ToInt32(project.Variables["element_left"].Value);
int y = Convert.ToInt32(project.Variables["element_top"].Value);

Random rnd = new Random();
x += rnd.Next(50, 200);
y += rnd.Next(50, 200);

// массив точек, по которым будет двигаться курсор мыши
Point[] points = new Point[10]
{
    new Point(x, y),
    new Point(x + 10, y + 5),
    new Point(x + 20, y + 10),
    new Point(x + 30, y + 15),
    new Point(x + 40, y + 20),
    new Point(x + 50, y + 25),
    new Point(x + 60, y + 30),
    new Point(x + 70, y + 35),
    new Point(x + 80, y + 40),
    new Point(x + 90, y + 45)
};

// случайные задержки между движениями
int[] delay = new int[10] {
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150),
    rnd.Next(50, 150)
};

// функция, выполняющая движение по заданной траектории с указанными задержками
instance.ActiveTab.MouseMove(points, delay, false);

Вам нужно указать числовые значения в переменных element_left и element_top, у меня это были leftInTab и topInTab для какого-то html-тега на странице. По факту вы же можете поставить туда рандомные значения, чтобы курсор в своем начальном положении находился где-то в середине страницы (можно посчитать), ну или ввести туда просто значения от 200 до 500, например (ведь мало у кого браузеры меньше 500 пикселей в ширину/высоту).

Фактически - такое встречается очень редко, но иногда данный код вам может здорово помочь! Единственное, что я бы тут ещё дополнительно отметил - стоит "поиграться" и придумать как делать больше движений и "рисовать" курсором мыши более сложные движения.
Я же использовал этот сниппет для ZennoPoster следующим образом: я ставил его перед каждым заполнением нового input'а, чтобы сэмулировать движение мыши к нему от предыдущего элемента.
А с новым режимом умеешь работать аналогично? :-)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)