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

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Реакции
3 883
Баллы
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'а, чтобы сэмулировать движение мыши к нему от предыдущего элемента.
 
Зачет с меня +
Тут на самом деле можно поиграться!
 
Благодарю, забрал в коллекцию.
 
Последнее редактирование:
Недавно был один трастовый ресурс, который при регистрации палил движение курсора. И если курсор не двигался, то он автоматически вываливал ошибку при регистрации. Я вначале тупил и не понимал в чём дело, но друг подкинул эту мысль с эмуляцией мыши и она частично сработала (т.к. при запуске во многопотоке он ещё что-то палил, но я так до конца и не разобрался).

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

Код:
Развернуть Свернуть Копировать
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
Для тех, кому нужена эмуляция посерьезнее, чтобы вебвизор от яндекса не палил или можно было без палева регать гмейл акки - советую: Humaniation - библиотека эмулирующая "человеческие" траектории мыши
Блин, оно, решение, целое состояние стоит. :(
 
Для тех, кому нужена эмуляция посерьезнее, чтобы вебвизор от яндекса не палил или можно было без палева регать гмейл акки - советую: Humaniation - библиотека эмулирующая "человеческие" траектории мыши
А рекламировать не стоит свою продукцию, тут такто обсуждение данного варианта
 
А рекламировать не стоит свою продукцию, тут такто обсуждение данного варианта
Даже не знаю что на это сказать :-D Может стоит посмотреть кто где автор и сравнить?)
 
Недавно был один трастовый ресурс, который при регистрации палил движение курсора. И если курсор не двигался, то он автоматически вываливал ошибку при регистрации. Я вначале тупил и не понимал в чём дело, но друг подкинул эту мысль с эмуляцией мыши и она частично сработала (т.к. при запуске во многопотоке он ещё что-то палил, но я так до конца и не разобрался).

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

Код:
Развернуть Свернуть Копировать
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'а, чтобы сэмулировать движение мыши к нему от предыдущего элемента.

А с новым режимом умеешь работать аналогично? :)
 

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