Разработка ботов

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (2) [1] 2   К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
kozlovsky
8.07.2013 - 08:42
Статус: Offline


Гость

Регистрация: 11.11.12
Сообщений: -2
8
возможно, это не совсем формат - но зачем загонять себя в рамки?
Не реклама.

Многие из вас задаются вопросом, на чём же писать ботов? И как это делать?

На самом деле, выбор довольно большой:

1. Autoit. Очень мощный язык программирования, довольно простой, синтаксис схож с Бэйсиком. (Basic-like language). Единственный минус - нет встроенного поиска изображений на экране (только пользовательская функция, которая работает через раз. Собственно, только по этой причине перешел на AutoHotkey).
http://www.autoitscript.com/

2. AutoHotkey. Пользуюсь не очень давно, но довольно быстро освоился после AutoIt. Минусов пока не заметил - более лаконичный синтаксис, код легче. Есть встроенный поиск изображения на экране.
http://www.autohotkey.com/

3. Clickermann. Слышал о нём, но не работал. В настоящее время "допилен" до вполне самостоятельного языка, на котором можно писать ботов. Есть всё что нужно: работа с мышью, клавиатурой, поиск изображений. Есть запись макросов. Но, лучше (или же привычнее для меня), писать и редактировать код.
http://crapware.aidf.org/page/clickermann

вот такой вот пост
сильно не стукайте, все ж мы люди...

Пример кода (AutoHotkey)

TrayTip, Lancer, ошибка
MouseClick, Left , 681, 369, 1, 0, D
Sleep, 700
MouseClick, Left , 681, 369, 1, 0, U
Sleep, 1000
TrayTip, Lancer, забросили
}
else if ErrorLevel = 1
{
TrayTip, Lancer, ошибка
MouseClick, Left , 681, 369, 1, 0, D
Sleep, 700
MouseClick, Left , 681, 369, 1, 0, U
Sleep, 1000
TrayTip, Lancer, забросили
}


Это сообщение отредактировал kozlovsky - 8.07.2013 - 08:49

Разработка ботов
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
Sergets
8.07.2013 - 08:49
1
Статус: Offline


Без статуса

Регистрация: 18.01.11
Сообщений: 1869
kozlovsky долго ботов для ЯПа писал?

Это сообщение отредактировал Sergets - 8.07.2013 - 08:49
 
[^]
kozlovsky
8.07.2013 - 08:50
0
Статус: Offline


Гость

Регистрация: 11.11.12
Сообщений: -2
Цитата (Sergets @ 8.07.2013 - 09:49)
kozlovsky долго ботов для ЯПа писал?

Для этого сайта не делал. Разве здесь можно что-то автоматизировать? А вообще, опыт разработки - 5 лет.
 
[^]
sadink
8.07.2013 - 08:50
2
Статус: Offline


Гость

Регистрация: 25.06.12
Сообщений: 0
не то чтобы "не формат"... неожиданно, скажем так.
было бы слегка проще понять, что вы хотели сказать, если бы вы хотя бы немного рассказали о породе ваших головных тараканов. то есть применение ботов же бывает разным, начиная от безобидных чатботов и заканчивая коммерческими разработками для кардрумов.
 
[^]
Sergets
8.07.2013 - 08:51
6
Статус: Offline


Без статуса

Регистрация: 18.01.11
Сообщений: 1869
Цитата (kozlovsky @ 8.07.2013 - 16:50)
Цитата (Sergets @ 8.07.2013 - 09:49)
kozlovsky долго ботов для ЯПа писал?

Для этого сайта не делал. Разве здесь можно что-то автоматизировать? А вообще, опыт разработки - 5 лет.

Посоны, не верьте ему, он бот!
 
[^]
rsa
8.07.2013 - 08:51
1
Статус: Offline


Шутник

Регистрация: 11.03.12
Сообщений: 68
Тоже автохоткей юзаю в играх
 
[^]
gxblp
8.07.2013 - 08:52
1
Статус: Offline


о_О

Регистрация: 2.05.12
Сообщений: 262
Как то вроде и норм, но информации как таковой как бы и нет.
 
[^]
kozlovsky
8.07.2013 - 08:52
1
Статус: Offline


Гость

Регистрация: 11.11.12
Сообщений: -2
sadink,

Я занимался (и занимаюсь) ботами для браузерных онлайн-игр, в основном.

Добавлено в 08:53
gxblp,

Если я что-то упустил - спрашивайте, всё расскажу, всё покажу.

Вот гайд (не мой) по Clickermann:


Это сообщение отредактировал kozlovsky - 8.07.2013 - 08:55
 
[^]
gxblp
8.07.2013 - 08:56
1
Статус: Offline


о_О

Регистрация: 2.05.12
Сообщений: 262
kozlovsky
Да вот надо было в пост добавлять что-то помимо названий и впечатлений, ну тоесть чем то это все наполнить. Хз в общем. Но как то пусто.
 
[^]
slawomir
8.07.2013 - 08:59
1
Статус: Offline


Ярила

Регистрация: 17.03.09
Сообщений: 9578
На WoT хоть один работающий незабаниваемый бот существует?
 
[^]
kozlovsky
8.07.2013 - 09:01
0
Статус: Offline


Гость

Регистрация: 11.11.12
Сообщений: -2
Цитата (slawomir @ 8.07.2013 - 09:59)
На WoT хоть один работающий незабаниваемый бот существует?

Насчёт WoT не знаю, для 3D не пробовал писать... Могу выложить исходник, для игры Трофейная рыбалка, с комментариями:

Hotkey, Esc, MyLabel - задаём горячую клавишу ESC, для отключения скрипта
Sleep, 7000 - пауза 7 сек.
MouseClick, Left , 681, 369, 1, 0, D - заброс удочки, эмулируется мышь.
Sleep, 700
MouseClick, Left , 681, 369, 1, 0, U
Sleep, 1000
TrayTip, Lancer, забросили
while 1
{
PixelSearch, Px, Py, 672, 347, 689, 366, 0xA33847, 0, RGB - поиск пикселя цвета поплавка, если его нет - тянуть.
if ErrorLevel
{
TrayTip, Lancer, тянем
MouseClick, Left , 681, 369, 1, 0, D
n = 0
While 1
{
n++
ImageSearch, Ix, Iy, 620, 139, 1409, 772, *100 sell.bmp - поиск кнопки "продать" (изображение)
if ErrorLevel = 2
{
Sleep, 100
ImageSearch, Ix, Iy, 0, 0, A_ScreenWidth, A_ScreenHeight, *100 achtung.bmp (поиск изображения, натяжение лески, если есть - отпустить мышь, не тянуть)
ToolTip
if ErrorLevel = 2
Sleep, 10
else if ErrorLevel = 1
Sleep, 10
else
{
TrayTip, Lancer, обрыв
MouseClick, Left , 681, 369, 1, 0, U
k = 0
while 1
{
k++
Sleep, 100
ImageSearch, Ix, Iy, 0, 0, A_ScreenWidth, A_ScreenHeight, *100 achtung.bmp
if ErrorLevel = 2
{
break
}
else if ErrorLevel = 1
{
break
}
else
{
}
If k = 300
{
break
}
}
Click Down
}
}
else if ErrorLevel = 1
{
Sleep, 100
ImageSearch, Ix, Iy, 0, 0, A_ScreenWidth, A_ScreenHeight, *100 achtung.bmp
if ErrorLevel = 2
Sleep, 10
else if ErrorLevel = 1
Sleep, 10
else
{
TrayTip, Lancer, обрыв
MouseClick, Left , 681, 369, 1, 0, U
k = 0
while 1
{
k++
Sleep, 100
ImageSearch, Ix, Iy, 0, 0, A_ScreenWidth, A_ScreenHeight, *100 achtung.bmp
if ErrorLevel = 2
{
break
}
else if ErrorLevel = 1
{
break
}
else
{
}
If k = 300
{
break
}
}
Click Down
}
}
else
break
If n = 300
{
break
}
}
MouseClick, Left , 681, 369, 1, 0, U
ImageSearch, Ix, Iy, 620, 139, 1409, 772, *100 sell.bmp
if ErrorLevel = 2
{
TrayTip, Lancer, ошибка
MouseClick, Left , 681, 369, 1, 0, D
Sleep, 700
MouseClick, Left , 681, 369, 1, 0, U
Sleep, 1000
TrayTip, Lancer, забросили
}
else if ErrorLevel = 1
{
TrayTip, Lancer, ошибка
MouseClick, Left , 681, 369, 1, 0, D
Sleep, 700
MouseClick, Left , 681, 369, 1, 0, U
Sleep, 1000
TrayTip, Lancer, забросили
}
else
{
TrayTip, Lancer, вытянули
MouseClick, left, Ix, Iy, 2, 1
Sleep, 1000
MouseClick, Left , 681, 369, 1, 0, D
Sleep, 700
MouseClick, Left , 681, 369, 1, 0, U
Sleep, 1000
TrayTip, Lancer, забросили
}
}
}
MyLabel:
ExitApp


Это сообщение отредактировал kozlovsky - 8.07.2013 - 09:05
 
[^]
gxblp
8.07.2013 - 09:04
1
Статус: Offline


о_О

Регистрация: 2.05.12
Сообщений: 262
kozlovsky
К стати вопрос. А нафига это оптимизировать? Я просто в такие браузерки особо не играю. Что дает то это в конце? Какой профит? Пардон если очевидное спрашиваю =)
 
[^]
kozlovsky
8.07.2013 - 09:07
0
Статус: Offline


Гость

Регистрация: 11.11.12
Сообщений: -2
gxblp,

Не оптимизировать, а автоматизировать. Боты пишутся, чтобы они сами всё в игре делали, за тебя (всякую рутину). Поливали грядки во всяких дебилофермах, например.
 
[^]
gxblp
8.07.2013 - 09:08
2
Статус: Offline


о_О

Регистрация: 2.05.12
Сообщений: 262
kozlovsky
Ну эт да, ну а профит то какой? Просто место в рейтинге игры? Или аккаунт пропить?
 
[^]
amdx
8.07.2013 - 09:26
2
Статус: Offline


Программер

Регистрация: 20.05.11
Сообщений: 2482
Цитата
Ну эт да, ну а профит то какой? Просто место в рейтинге игры? Или аккаунт пропить?

Профит - чтобы нудный кач делал не ты, а бот. Представь ты хочешь крутого перка, чтобы он там с одного удара всех валил. А для этого нужно много опыта, например, 10000 раз ударить по тренеровочному столбу. Ты же заебешься 10000 раз ударять - поставил бота и ушел по делам. Приходишь и вот он - перк!
 
[^]
toper
8.07.2013 - 10:27
2
Статус: Offline


Мы прибыле к вам с миром, таг... пасрать

Регистрация: 17.11.05
Сообщений: 5051
ну для браузерок то понятно)

а вот для полноценных ммоprg ?
 
[^]
Nevius
8.07.2013 - 10:56
2
Статус: Online


Ярила

Регистрация: 16.04.08
Сообщений: 2414
сам когда играл в одну браузерку, зачудил к ней скриптег на AutoIt, вполне успешно мышку тягал по экрану за меня...

потом - запустил виртуалку, на ней браузер и скрипт с расписанием запусков и т.д., вообще круглосуточно пахал, грабил корованы соседей и раздражал врагов...

ну а потом мне это всё надоело gigi.gif
 
[^]
Инсэйн
8.07.2013 - 19:32
1
Статус: Offline


Рядовой Шутник

Регистрация: 8.01.12
Сообщений: 321
toper если для MMORPG, то попахивает ИИ. Для этого существуют более подходящие я зыки, ну и программисту нужно быть далеко не нубом и шарить, особенно в самом математическом аппарате.
 
[^]
amdx
8.07.2013 - 21:46
2
Статус: Offline


Программер

Регистрация: 20.05.11
Сообщений: 2482
Цитата
ну и программисту нужно быть далеко не нубом и шарить, особенно в самом математическом аппарате.

Там даже не математика, а отслеживание связей, поиск точек монтирования сегментов кода и данных, модифицирование переменных, отвечающих за координаты игрока, его направление и скорость движения, текущее выполняемое действие и т.п.
Одним словом, бот для игры - это ее полноценный хак + тренер + ИИ.
По уровню хороший бот стоит выше тренера и патча. Тот бот, который жестко привязан к конкретной игре и не реализован на чужом движке (всякие кликалки, скриптеры). А бота на основе кликалки любой даун создать может, который хоть немного понимает в геометрии.
У меня был опыт создания бота для одной гоночной игры, а начиналось все с простенького тренера. Затем через месяцы и годы все раскрутилось до того, что машины могли ездить и даже летать в сетевой игре без участия игрока по заранее расчитанным картам. Даже был вариант с самостоятельным выбором маршрута ИИ, однако он был багливый, тачки часто ошибались и приезжали последними

Это сообщение отредактировал amdx - 8.07.2013 - 21:49
 
[^]
toper
9.07.2013 - 00:54
1
Статус: Offline


Мы прибыле к вам с миром, таг... пасрать

Регистрация: 17.11.05
Сообщений: 5051
А ёщё про системы защиты забыли в мморпг) которые например банят перса если просекают, что ктото юзает винапи для действий в игре и тд итп
 
[^]
vvpimedved
9.07.2013 - 01:05
1
Статус: Offline


Ярила

Регистрация: 13.08.10
Сообщений: 2297
застрелится . ну не фига не понимаю Мама роди меня обратно к молодым девушкам и я выучу эту науку- программиста.
 
[^]
amdx
9.07.2013 - 08:46
4
Статус: Offline


Программер

Регистрация: 20.05.11
Сообщений: 2482
Цитата
А ёщё про системы защиты забыли в мморпг) которые например банят перса если просекают, что ктото юзает винапи для действий в игре и тд итп

Да ладно, это выходит за рамки данной темы)) Здесь чисто кликеры обсуждают и это гордо звучит "написать бота" biggrin.gif
Системы защиты игры от ботов:
1) Детектирование вторжения в исполняемый код, а именно:
1.1) Анализ критичных экспортируемых функций DLL на предмет подмены
1.2) Подсчет контрольных сумм исполняемых секций
1.3) Анализ адресов (точек входа) процедур WinAPI, таких как ZwOpenProcess, ZwOpenFile, ZwOpenSection
1.4) Мониторинг действий мыши и клавы через хук драйвера. Далеко не все кликеры могут обойти и этот метод защиты.
2) В случае положительной оценки подпунктов (1) - передача сведений на сервер. Обычно это простой TCP/UDP пакет со специальным кодом, означающий бан игрока по причине 1.Х.

Взлом защиты:

Основная задача настоящего бота - не дать пакету с баном уйти на сервер. Для этого он во-первых должен знать как он выглядит такой пакет - сниффер в помощь, создаем перса и делаем так, чтобы его забанили. За этот период все пакеты сохраняем и по мере дальнейшего анализа сетевого траффика, методом исключения, находим нужный. Помним, что он должен быть особенный, и скорее всего, в единственном числе.
Для перехвата или исключения пакета из траффика можно выбрать несколько способов.
Первый из них - патч исполняемого файла в точках формирования этого пакета и в точках самозащиты игры. Это может быть сложный способ, т.к. методы защиты исполняемых файлов каждый раз совершенствуются и взломать их все сложнее. С каждым патчем игры меняются и адреса функций самозащиты, а значит нужно ломать ее вновь.
Второй - создание сетевой службы поверх TCP/IP, которая внедряется в ядро ОС и может отслеживать траффик, выполнять его фильтрацию и быть управляемой извне. Тоже способ не очень простой, требует специфических знаний.
Третий - использование собственного DNS и программы-зеркала игрового сервера. Механизм выглядит так:
*** В свойствах сетевого соединения основным DNS сервером выступает 127.0.0.1
*** Бот слушает 53 порт и если на него приходит, например, api.fuckthemall.com - то возвращает такие же 127.0.0.1, а все остальные запросы "пробрасывает" через 8.8.8.8 к примеру, или другой сервер провайдера.
*** Теперь игра связывается с локальным сервером на этом компьютере. И здесь опять помогает бот - он слушает порты общения игры и выполняет их зеркалирование с настоящим api.fuckthemall.com, но только в том случае, пока не пришел пакет с баном.
Способ очень удобен, т.к. все функции игры бот замыкает на себя.

Вы говорите "Как и на чем писать ботов"? Пиздатых ботов пишут на сях, бывает и на дельфях... и даже на асме видел. Вообще хорошему программисту похуй на чем писать, Си-шники ни чем не круче Дельфистов или Асматиков.
Написать сильного игрового бота - это не так просто, требуется очень большой объем знаний аппаратной части, API винды, структуры PE файлов, организации памяти ОС, методов кодирования информации, разработки драйверов и служб, сетевых протоколов и еще хуеву тучу всего.

А тут я вижу автокликеры, хоткеи, скриптеры... че это за хуета? Я совсем другое преполагал видеть здесь... Не, ребят, при Сталине такой фигни не было...

Это сообщение отредактировал amdx - 9.07.2013 - 08:53
 
[^]
probneg
9.07.2013 - 11:45
1
Статус: Offline


Пластилин мира!

Регистрация: 24.03.11
Сообщений: 285
Цитата (slawomir @ 8.07.2013 - 08:59)
На WoT хоть один работающий незабаниваемый бот существует?

И такой чтоб всех ногибал?
 
[^]
amdx
9.07.2013 - 12:03
1
Статус: Offline


Программер

Регистрация: 20.05.11
Сообщений: 2482
Цитата
И такой чтоб всех ногибал?

А зачем боты в вот? Чтобы быстро прокачать до танка и потом сливаться бой за боем? Права купил, а ездить не купил? Я лично против ботов в WOT.
Если только боты в одиночной игре, тогда бы поиграл)
 
[^]
probneg
11.07.2013 - 09:47
1
Статус: Offline


Пластилин мира!

Регистрация: 24.03.11
Сообщений: 285
Та хотя бы звёзды сбивать.
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 13926
0 Пользователей:
Страницы: (2) [1] 2  [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх