Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Защита от кликов мышкой

Страниц (1): [1]
 

1. tubux - 05 Августа, 2015 - 16:40:03 - перейти к сообщению
Здравствуйте, я пишу на Делфи. Всё бы хорошо, но этим летом столкнулся с проблемой, а именно это защита от кликов в игре Тера Онлайн (русские официальные сервера).

В поисках решения обхода защиты, нашел ваш сайт. Немного изучил Кибор, выделил для себя нужные функции: mouse() , sendmousedown() и sendmouseup().
Поэкспериментировал с калькулятором и пэинтом, всё работает на ура.
Попытался таким же образом кликнуть по Тере, результата ноль(((

Мои действия:

1) Нашел с помощью шпиона указатель на окно теры
2) Состряпал код клика
win wind;
wind=window ("TERA", "LaunchUnrealUWindowsClient", -1);
sendmousedown (LEFT, 136, 265, wind);
sendmouseup (LEFT, 136, 265, wind);
3) Скомпилировал, запустил

Результата ноль

4) После неудачи поставил в Киборе галочку напротив Анти-Антикликер. Результата по прежнему нет.

Тоже самое проделывал с функцией mouse() в активном окне игры, указатель мыши перемещается но клик по прежнему не происходит.

Моя система Windows 8.1, ноутбук Асер.

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

За ранее спасибо, с уважением новый пользователь вашего форума.
2. Kibor - 05 Августа, 2015 - 16:57:16 - перейти к сообщению
Для начала попробуйте запустить кибор от админа.
В диспетчере задач клавиатура и мышь ps2?
при включение анти-антикликера писало модуль готов?
анти-антикликер публичный в настройках?

После закрытия первой таблички пишущей о тесте во время теста подвигайте мышку.
Проверьте просто клавиатуру key('2'); для мыши только mouse.. без указателей mouse(LEFT, 55, 255); в активное окно..

все эксперименты проводите на простом калькуляторе... сначала что б запустить анти-антикликер.
3. tubux - 06 Августа, 2015 - 10:27:58 - перейти к сообщению
 Kibor пишет:
Для начала попробуйте запустить кибор от админа.

Запуск делаю от админа.

 Kibor пишет:
В диспетчере задач клавиатура и мышь ps2?

Не понял вопроса, может быть вы имели в виду диспетчер устройств. В диспетчере устройств есть мышь ps2.

 Kibor пишет:
при включение анти-антикликера писало модуль готов?

Да писало.

 Kibor пишет:
анти-антикликер публичный в настройках?

Да публичный.

 Kibor пишет:
После закрытия первой таблички пишущей о тесте во время теста подвигайте мышку.

двигал тачпад, иногда говорит что с мышкой проблема и предлагает посетить форум, а иногда говорит что модуль готов к работе.

key('2'Подмигивание работает нормально как в калькуляторе, так и в игре, но с клавиатурой проблем и не было, из делфи клавиши шлются обычными postmessage, проблемы именно с кликами мышки.

mouse(LEFT, 55, 255); начала работать только после того, как поставил в настройках галку Эмулировать мышь движение, мышка начала двигаться и кликать по окну игры (в данном случае защита побеждена).

Но кликов в активное окно я добился ранее с помощью языка autoit. Меня же интересуют клики в неактивное или свернутое окно, то есть нужные мне функции это sendmousedown() и sendmouseup(). Они работают в пэинте, но по прежнему отказываются работать в игре.
4. Kibor - 06 Августа, 2015 - 10:47:33 - перейти к сообщению
sendmousedown() и sendmouseup() не относятся к антиантикликеру. и если действительно защита, они блокируются. только key, mouse в активное.
если надо скрыть окно при антиантикликере transparency
5. tubux - 06 Августа, 2015 - 17:04:00 - перейти к сообщению
У меня задача, чтобы было запущено минимум 4 окна игры, к каждому окну я цепляю бота. transparency тут не подходит( честно говоря вообще не понял полезность данной функции) Поигравшись с transparency я понял, что клики и нажатия клавиш проходят в игру только если окно активно.

На вашем видео где вы демонстрируете работу этой функции так же видно, что окно активно и работать с другими окнами не возможно.

Так, что у меня возник такой вопрос, возможно ли с помощью Кибор организовать клики в несколько окон одновременно, чтобы они не мешали друг-другу, не используя функции sendmousedown() и sendmouseup() так –как эти функции блокирует защита игры?
6. Kibor - 07 Августа, 2015 - 02:35:48 - перейти к сообщению
 tubux пишет:
Так, что у меня возник такой вопрос, возможно ли с помощью Кибор организовать клики в несколько окон одновременно, чтобы они не мешали друг-другу


можно. даже с mouse key и с антиантикликером переключая окна на то в которое идет нажатие иль клик.

CODE:
win w[2];
string p="C:\Windows\System32\calc.exe";// путь к калькулятору
start(p);
pause(1500);
w[0]=getwindow();
w.left[0]=50; w.top[0]=50;
movewindow(w[0]);

start(p);
pause(1500);
w[1]=getwindow();
w.left[1]=550; w.top[1]=50;
movewindow(w[1]);

//====================================================


click_key('5', 0);
sleep(500);
click_key('7', 1);
sleep(500);
click_key('2', 1);
sleep(500);
click_key('0', 0);
sleep(500);
click_key('7', 0);
sleep(500);
click_key('2', 1);
sleep(500);


function click_key(char c, int s)
{
if (formatwi(getwindow())!=formatwi(w[s]))
{
activate(w[s]);
q: if (formatwi(getwindow())!=formatwi(w[s])){sleep(10); goto q;}
}
key(c);
}


запускается 2 калькулятор..

на каждое окно получается указатель.

 Цитата:
click_key('5', 0);// нажать 5 в первом калькуляторе
sleep(500);
click_key('7', 1);// нажать 7 во втором


так калькуляторы маленькие а если игра большая на экране?
тогда и юзать можно transparency чтоб было видно все окна.
7. Kibor - 07 Августа, 2015 - 05:31:17 - перейти к сообщению
А этот код позволяет нажимать key (с анти-антикликером) в другом окне на заднем плане не показывая его на экране.
То есть играем в одном окне и хотим отправить своему твинку, который в окне на заднем плане нажатие кнопки и при этом не теряя фокус на свое окно.


Пример как по нажатию ALT+ клавиша a-z отправляет блокноту на заднем плане клавишу a-z и при этом используется key с антиантикликером и блокнот не стает (ну не заметно) активным и не выходит (не заметно) на первый план не перекрывая первое наше окно. Наше окно остается активным. тут и пригодится transparency
CODE:
win w=window ("Безымянный — Блокнот", "Notepad", -1);
win w1;


l:
per();
sleep(20);
goto l;



function per()
{
if (getkeystate(18)==1)
{
for (int n=65; n<91; n++)
{
if (getkeystate(n)==1)
{
bb: if (getkeystate(18)==1){sleep(5); goto bb;}
click_key(n);
return;
}
}
}
}



function click_key(int c)
{
w1=getwindow();
transparency (0, w);
if (formatwi(getwindow())!=formatwi(w))
{
activate(w);
q: if (formatwi(getwindow())!=formatwi(w)){sleep(10); goto q;}
}
sleep(50);
key(c);
activate(w1);
transparency (100, w);
}
8. tubux - 07 Августа, 2015 - 07:39:47 - перейти к сообщению
Спасибо за пример и за то, что потратили на меня время и ответили на мои вопросы. Буду изучать Кибор дальше.

Ваш пример натолкнул меня на мысль, как я могу совместить работу своего бота на делфи с Кибором.

И ещё пара слов о защите в играх. Гуляя по просторам интернета, натолкнулся на статью, где автор говорит о том, как защита определяет, совершен клик человеком или это сделала программа. Ссылка на статью pastebin.com/rj4YcW4C

Статья на английском но можно воспользоваться переводчиком встроенным в хром например.

Суть статьи в том, что пишется драйвер (код приведён в статье, но скорее всего не весь) который убирает у эмулированного клика флаг, который указывает на то, что клик сделан программно и защита воспринимает его как реальный, сделаный человеком.

Вот я и подумал, может можно эту вещь добавить в Кибор и тогда будут работать функции sendmousedown() и sendmouseup().
9. Kibor - 07 Августа, 2015 - 07:54:31 - перейти к сообщению
 tubux пишет:
который убирает у эмулированного клика флаг, который указывает на то, что клик сделан программно и защита воспринимает его как реальный, сделаный человеком

Это не решит вопрос под DirectInput и send не заработает

Powered by ExBB FM 1.0 Final