Здравствуйте, гость Правила · Помощь

»  Проги, боты и иже с ними, по просьбе Magystr'a Подписаться | Сообщить другу | Версия для печати
      » 16/10/2007, 12:11,  Best 
Объясняй!
      » 16/10/2007, 13:48,  magystr 
Спасибо, Сергей, что прислушался к просьбе!

Когда мы входим в гамб, садимся за стол и выбираем игру, между нашим компьютером и сервером происходит обмен информацией по определенному ПРОТОКОЛУ. Точнее идет обмен пакетами между клиенской и серверной частями программы.

Примерно так.
Мы сели за свободный 15-й стол. И выбрали игру шахматы, контроль 3 минуты, осальные конвы по умолчанию.
1.Клиент посылает серверу пакет: НИК (такой-то), 15-й стол, 3 минуты.
2.Сервер отвечает - ОК. После этого открывается окно с фигурками и мы ждем партнера.
3.Садится парнер. Его клиент посылает пакет. НИК сел за 15-й стол.
4.Сервер обрабатывает этот пакет и высылает мне соответствующий.

Ну и так далее.
Любое нажатие кнопки мыши, клавиши "Enter" вызывает формирование очередного пакета для сервера.
Все изменения "картинки" на нашем мониторе происходят вследствие приема и обработки нового пакета от сервера.
Ну и в каждом пакете присутствует информация, о чем собственно этот пакет - сделанный ход, сообщение в общий чат или в чат стола, появление друга в зале, появление наблюдателя за столом и т.п.

Это была преамбула.

Когда начинается партия и мы делаем ход - клиент формирует пакет, в котором присутствует № хода и сделанный ход. Далее мы от сервера получаем пакет с ходом партнера, показаниями часов и т.д. и т.п.

А вот теперь представим такую ситуацию.
Мы знаем, как нам обработать тот или иной пакет.
Мы знаем, как сформировать пакет для сервера, чтобы он его корректно обработал.

Далее инструкция для тех, кто хочет сам создать бот.

1-й этап.

И вот мы, НЕ ОТКРЫВАЯ КЛИЕНТА, отсылаем по известному адресу пакет, о том, что наш ник вошел в клуб.
Дождавшись ответа от сервера, мы, зная список возможных ответов, обрабатываем его и генерируем следующий пакет о том, что мы вошли в Зал Клетки.
Ну и так далее ведем диалог с сервером, играем в шахматы, НЕ ОТКРЫВАЯ ПРИ ЭТОМ ОКНО ГАМБЛЕРА И НЕ ПЕРЕДВИГАЯ МЫШКОЙ ФИГУРЫ, а формируя определенные пакеты и обрабатывая пришедшие.

Для того, чтобы таким образом играть в шахматы, необходимо знать ПРОТОКОЛ ОБМЕНА.

Это информация достаточно конфиденциальная, но в то же время не защищенная и, проанализировав сеанс связи с гамблером, а именно информацию, содержащую в пакетах, можно этот протокол расшифровать.

Безусловно эта работа требует высокой квалификации, понимания клиент-серверного взаимодействия, но отнюдь не запредельной.

Итак, в результате этого мы умеем общаться с Гамблером не посредством его клиентской части, а напрямую.

2-й этап.

Допустим у нас есть ШАХМАТНАЯ программа, которая умеет реагировать не только на выбор пунктов меню "Начать партию", "Установить время на партию", "Включить анализ на уровне КМС" и т.п., но и на соответствующие команды извне. При этом также по результатам выдавая информацию в определенном виде.
То есть логика работы такая же, как при клиент-серверном взаимодействии.
Опять же, зная протокол обмена, или расшифровав его, можно, не заглядывая в окно программы, вести реальную партию с этой прогой.

3-й этап.

А вот теперь нужно ответы от шахматной программы преобразовать в пакет для гамблера и наоборот.
Для этого должна быть разработана и написана уникальная программа по совмещению протоколов.


Из имеющейся у меня информации, для людей определенной (высокой) квалификации этапы 1 и 3 не должны вызвать серьезных проблем. Вопрос только во времени, необходимом для решения этих задач.
А вот этап 2 видимо выставляет гораздо больше требований по его реализации. В большинстве случаев требуется взлом программного кода шахматной программы или по крайней мере его части.
Впрочем, насколько мне известно, существуют шахматные программы с открытым или частично открытым кодом.
Наверное по этому в настоящее время не реализованы боты на Фрице или скажем рыбке.

Это сообщение отредактировал magystr - 16/10/2007, 13:49
      » 16/10/2007, 14:15,  magystr 
Ну и дополню.

При реализации всего того, что написано выше, на компе запущена шахматная программа. Она может быть и свернута. Хоты за обе стороны делаются без участия человека. А также запущена программа-транслятор из этапа 3, действующая автоматически.

Поэтому надеюсь понятно, что любой контроль времени не будет помехой для достижения высоких результатов.
Все происходит без участия человека.
      » 16/10/2007, 14:36,  Hong 
Андрей все правильно написал. Кстати трудности этапа 2 не такие уж глобальные.

Я только хотел остановиться на самом продвинутом варианте интерфейса. Все что описал Андрей без участия человека - хорошо, но не очень удобно. НИЧТО не мешает его реализовать в таком варианте:

Вы заходите, авторизируетесь, садитесь за стол и начинаете играть - САМИ! просто у вас открыто окно где движком дублируются ходы партии - и вы в любой момент можете выбрать ход движка, продолжать играть самому или предоставть ему играть движку в автоматическом режиме - с соответствующим временным контролем или уровнем силы. Есть ли на гамбе такие оборотни, из числа игроков топ-уровня...вот вопрос. Ничто не мешает создать такого фантома, прикрывшись (по договоренности) чьм-то именем. Я ДОПУСКАЮ такую возможность на сегодняшний день. Принципиальных технических препятствий НЕТ. Было бы желание, ну и возможности...))).
      » 16/10/2007, 14:43,  shuherr 
Все расписано здорово и подробно.
Но в этом варианте совпадение ходов с каким-либо из движков должно быть 100 процентов.
А этого почти никогда не наблюдается.
Хотя, конечно, можно предположить, что прога использует несколько движков. И эти движки подключается поочередно или случайно. Но это уж больно натяжка, имхо.

Я никак не пойму доводов, что подозреваемый (-ая) играет то сам, то прогой, то не сначала, то прогой в силу первого разряда.

Сколько ж сил надо потратить, чтоб реализовать все эти варианты? Это не программист, а мазохист какой-то))

UPD. А, сорри, предыдущее не успел прочитать. Так можно, наверное. Но , имхо тут тоже не все так просто по идеологии.

Это сообщение отредактировал shuherr - 16/10/2007, 14:46
      » 16/10/2007, 14:54,  Niouri 
Я что-то не понял. И что такие варианты - программно не ловятся?
      » 16/10/2007, 14:54,  Hong 
Никогда не бывает 100% совпадения. Ибо комбинация движок+его настойки+железо уникальна. Именно сочетание этого дает ход в партии. Поэтому и совпадение ни о чем особо не говорит. Подозрительно? Да, очень. Ну и что. Проги скорее вычисляются по самой игре - кто много играл с прогой понимает, о чем я говорю.

Нет никакой необходимости спользовать несколько движков - это просто не нужно.
      » 16/10/2007, 14:56,  Hong 
2 Niouri
НЕТ. Ведь пакеты от гамблер- клиента ничем не отличаются, временной график обычный.

Это сообщение отредактировал Hong - 16/10/2007, 14:56
      » 16/10/2007, 14:58,  magystr 
Да. Абсолютно согласен.

После реализации описанного выше можно придумать различные варианты использования этого бота.
Например, запускать шахматную прогу не в автоматическом режиме, а в режиме анализа. При этом сделанные партнером ходы будут тут же отображаться, а какой ход сделать самому, из 1-й линии или из 15-й, подобный "игрок" может принимать самостоятельно.
Обнаружить при этом, что шахматист выигрывающий турнр за турниром использует запрещенные методы достаточно затруднительно. Особенно если он при этом обладает определенной квалификацией и прикрывается известным именем.

Реальный метод борьбы с этим я вижу только один. Закрытый и зашифрованный протокол. Ну по крайней мере чтобы каждому пакету соответствовал определенный сертификат, т.е. своего рода контрольная сумма пакета, генерирующийся псевдослучайным образом по определенному закону.

Кстати. Вопрос. А на конкурирующий сайтах протокол реально и надежно защищен? Там ведь не на фантики идет игра.


      » 16/10/2007, 15:03,  Hong 
Это уж надо обратится к специально обученным людям..Я думаю, что современный криптоанализ на очень высоком уровне, - вон в банки залазят и в Пентагон. А тут подумаешь - игровой сервер..)) Меня эти тонкости никогда особо не интересовали.
« Предыдущая тема | Перечень тем | Следующая тема »
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей: