Поражение покерного бота

Существует новый бот с открытым исходным кодом, который называется PokerPirate. Меня интересуют любые творческие способы, с помощью которых веб-приложение может обнаружить/сорвать/победить бот-покер. (Это чисто академическое обсуждение, в том же духе, что и PokerPirate).

Ответ 1

Поражение бота с точки зрения сервера

  • Многие сайты онлайн-покера используют всплывающие окна Captcha входы, вызванные подозрительная деятельность.

  • Некоторые покерные сайты контролируют игру времен и образцов (т.е. в худшем случае сценарий - игрок, который играет 24x7 и 16 таблиц непрерывно, крошечный крошечный шанс - это настоящая человек. (Однако некоторые игроки имеют возможность играть очень большие объемы рук, которые неопытным глазам кажутся ботами)

  • Бросьте глюки. Если вы подозреваете игрок - бот, измените все свои расположение игровых карточек с нескольких пикселей на экране, сделать их разные цвета/дизайн/узоры для 1/100 рук и посмотреть, не выбрасывает ли он их. Если он не может захватить экран будет тайм-аут по всем его решениям и это довольно убедительный бот доказательства.

  • Сроки говорят, если компьютерный проигрыватель отвечает на варианты в миллисекундах в то время без паузы для размышлений на больших решениях это может быть подозрительная

  • Самоконтроль. Веб-сайт покера pokertableratings.com данные мины много крупных сайтов. В нем есть был встречен смешанным приемом, некоторые любят прозрачность, другие ненавижу его. Преимущество, однако, что были случаи где подозрительный игрок статистика (процент VPIP, Процент PFR - это несколько крупных количество количественных статистических данных которые могут быть записаны) привели к выводы обмана

  • Искусственно умный классификационные сети могли контролировать количественную статистику до классифицировать мошенников или роботов игроков.

  • Назад, когда онлайн-покер был довольно новый сущ., был слух и говорить с ограниченным доказательством того, что программное обеспечение для покерных клиентов скриншоты подозрительных игроков настольные компьютеры, чтобы убедиться, что они запущены которые помогают им. Однако (даже если бы это было так) запуск двух компьютеров для выполнения двух задач независимо обойдется вокруг этого.

  • Обмен информацией между повторением правонарушители между несколькими сайтами было бы выгодно для отрасли, если бы они были почетными и выполнялись компетентные ответственные люди

  • Некоторые боты, вероятно, будут вполне просто по дизайну, если бы вы могли обнаружить их стиль игры и посмотреть, как они действуют в одинаковых ситуациях (обратите внимание на это возможно только с неискушенные боты, играющие очень базовой стратегии), вы можете обнаружить их разумно быстро.

  • Непосредственное использование программы  функции будут склоняться к  игрок является подлинным. Взять для  пример многих покерных сайтов в игре  иметь "Сгиб, когда он мой ход"  кнопка. Если у вас плохо получается  руки и ждут другого  игрок, чтобы решить, что делать, много  игроков проверит эту кнопку.  Эти кнопки могут использовать бот.  разница в том, что бот будет на концах частоты использования, они, вероятно, либо будут использовать их все время, либо вообще не будут.  Если игрок обычно может нажать  'autofold', но иногда они будут  в любом случае  благоприятные условия. Например,  настоящий игрок обычно нажимает  auto fold, но на этот раз они этого не делают.  Он свернулся с ними без  другой игрок, теперь у них есть  были представлены наиболее  выгодный состояние возможно. Теперь  если они нажимают на складку, они  были сильно склонны нажимать автофокус с самого начала. Это  inconsistant/unoptimised/случайное  поведение, являющееся  человек. Сроки показывают, когда эти функции будут нажаты, это другие индикаторы. Важно признать, что это все показатели, а не убедительные доказательства. Все эти поведенческие индикаторы легко моделируются.

Поражение бота с точки зрения игроков

  1. Постарайтесь регистрировать и собирать как можно больше данных с помощью программного обеспечения, такого как PokerTracker

  2. Попытка определить шаблоны в  его стиль игры

  3. Попытка найти отношения  между размером ставки пропорционально  игроки в горшке /# и сила руки

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

  5. Попытайтесь найти утечки в своем  игра через анализ данных и пробную версию  и ошибка. После того, как утечки/шаблоны  были обнаружены, попытки повторить  эксплуатировать их и избегать любых других  ситуации.

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

Таким образом, по сути, вы ничего не можете сделать, чтобы остановить его, если робот достаточно умен, чтобы имитировать реальные задержки времени при принятии решений, а также создавать разумные и реалистичные игровые шаблоны. Бросьте в некоторых случайных условиях и простой back-chat (лексикон игроков в покер обычно довольно ограниченный), и у вас есть себя AI-плеер, который будет довольно трудно обнаружить.

Что могут сделать боты, чтобы избежать обнаружения

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

  • Создание реалистичных графиков игры (т.е. 3-5 раз в неделю, 4 часа в сессии с нечетной неделей здесь и там в течение года).

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

  • Временные тайминги действий (не действуют немедленно, подождите 0,5-2 секунды за действие)

  • Время на большие решения. Если решение является пограничным, вычислить решение затем подождать некоторое время, чтобы имитировать мысль.

  • Случайное использование функций клиентского программного обеспечения. Имитировать разрывы туалетов, нажав кнопку "разблокировать" на всех столов и 5-минутного перерыва время от времени.

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

  • Убедитесь, что движения мыши реалистичный. Если таблицы tiled не принимают решения о верхний левый стол, а затем на нижнем правом столе. Большинство программ для сайтов теперь предлагают сочетания клавиш, они могут быть предпочтительнее использовать как предполагаемые для mousemovement.

  • Делайте то, что довольно просто AI классификаторы не ожидаются. Для Например, раз в год их телефон с простым некоммерческим запросом ("Помощь я не могу войдите в систему! "или" Интернет не работает! "). Вряд ли будет иметь большое значение, но если человек, работающий в покерной компании, достаточно умен, они могли бы признать его реальным показателем.

  • Спорадические проигрышные сессии. Наклон может быть смоделированным, и бот может играть плохо и каждый день теряют деньги а потом. Все склоняются к некоторым точка.

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

Даже когда вопиющие эксплойты были обнаружены (поиск в google для Cereus network скандалов или Absolute Poker Scandal, это довольно шокирует), кажется, что бизнес выживает и остается здоровым, только проигрывая хорошо образованных и выигрывающих игроков (которых их мало). Это увеличивает долю менее квалифицированных игроков в сети, что, в свою очередь, привлекает хороших игроков назад. Это хороший модный улов 22. Отличный аргумент в пользу правильного регулирования рынка.

Важно отметить, что для каждой игры существует равновесие nash . У онлайн-покера есть временная шкала для него, как сейчас, он должен переместиться во что-то более социальное (веб-камера/voip), чтобы кто-то мог доверять ему в будущем (если люди доверяют ему), так как боты возьмут на себя в конечном итоге математически превосходным и психологически иммунным. Сообщество покера AI очень активно, подпитывается академическими кругами и/или капитальной выгодой.

Более простые версии покера, такие как лимитированный покер, были почти решены в небольших поисковых пространствах. Это только вопрос времени перед более сложными версиями игры (варианты No Limit/Pot Limit Omaha и т.д.) Становятся доступными для искусственных игроков.

Заключение

Сложные боты просто не могут быть обнаружены до тех пор, пока индустрия не перейдет к более социальным настройкам онлайн-игр. Это не решит проблему, но, безусловно, будет затруднять выигрыш ботов на более низких уровнях. Мы уже видели небольшой сдвиг с выпуском PKR, 3D и более интерактивный вариант, меньшая количество часов в час на других сайтах, где многопоточность довольно сложна для игрока.

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

Реальная задача в настоящее время для разработчиков ботов заключается в написании алгоритма выигрыша, это не так тривиально, как кажется. Каждый, кто играет в покер, считает себя хорошим, выигрышным или безубыточным игроком, что просто неверно. Вот почему люди продолжают играть, даже когда они теряют деньги, поскольку они находятся под иллюзией, им просто не повезло, или их стиль игры неправильно истолкован. Это высокомерие и слабость в человеческой психологии стоило многим потерять игроков и является основной причиной того, что покер по-прежнему может быть прибыльным.

Покер - это очень сложная игра, в которой уходят годы, чтобы получить хорошее (Старая пословица остается верной, "Десять минут, чтобы учиться, жизнь, чтобы справиться" ). Элемент удачи чрезвычайно ограничен в долгосрочной перспективе.

Как и любая другая профессия, чтобы стать хорошей, вам нужно учиться сотни и сотни часов, и играть на многие тысячи. Вы поймете вещи, которые менее опытные игроки не поймут, заметьте вещи, которые менее опытные не имеют. Обучение продолжается очень долгое время, возможно, дольше, чем мы можем когда-либо жить. Это сложная игра.

Как часто вы видели игру с высокими ставками на телевидении и слышали, как кто-то кричал на нее "Это легкий звонок!" таким образом, чтобы любители действительно не понимали или не понимали сложности в игре, и поистине верят, что игра на этом уровне все еще в конечном счете проста. Это не так. Те игроки с высокими ставками (много времени) присутствуют на телевидении, потому что они действительно действительно хороши действительно. Существует также, вероятно, и сложная мета-игра, которую наш амауэр не может распознать. Аматуэр не стал бы стоять над мастером шахмат и кричать на них, чтобы переместить своего рыцаря, но из-за того, что динамика покера является несовершенной информацией, их психология делает их по-настоящему верными тому, что они говорят. Как в шахматах, решения могут быть сложными, чувствительными и чрезвычайно важными для общей игры. По мере того, как игра возрастает по сложности, тривиальные решения не так уж тривиальны, потому что ваш оппонент ожидает их.

Как только вы переместите свой бот или игру вверх по уровням, вы неизбежно столкнетесь с более многочисленными более опытными игроками. Затем сложность вашей стратегии должна перейти на следующий уровень, учитывая изображения таблиц, балансировка диапазона, сложный и интеллектуальный блеф (IE не просто блефует от слабости, блефует на диапазонах и блефует на изображении и т.д.), с более подробным анализом диапазона руки. Это действительно другая игра, когда вы двигаетесь вверх.

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

Так что вы действительно ничего не можете сделать. Если вы хотите играть в онлайн, понимайте риски. Никогда не рискуйте больше денег, чем можете себе позволить, и старайтесь вести точные записи о расходах, чтобы у вас не было ошибочной, нереалистичной и, в конечном счете, вредной оценки ваших собственных способностей. Устраните потери и оставьте стол, если у вас нет края, или если вы не уверены, есть ли у вас преимущество! Конечно, если бы каждый сделал это, никто бы не выиграл, это хищнический и эксплуататорский характер игры, что там, где происходит конкуренция, и что делает его забавным.

Ответ 2

Рассматриваются три отдельные области. Бот должен выяснить состояние таблицы, принять решение и отправить решение обратно хосту.

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

С принятием решения ничего не поделаешь. Попытка решить, было ли решение принято человеком или нет, похоже на пробный тест с почти никакой информацией.

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

Ответ 3

PokerPirate, как и каждый покерный бот, когда-либо написанный, работает с помощью скрипинга экрана и моделирования кликов мыши в приложении для покера Windows. Поэтому линч-штырь к системе - это способность распознавать объекты в игре и делать действия в окне. Такой умный, как это может быть в покере, у него, вероятно, все еще есть проблемы с этими основными операциями.

Следовательно, очевидные способы помешать этому боту будут включать:

  • Внедрить CAPTCHA, либо до игры, либо когда другие факторы подсказывают, что игрок может быть ботом.
  • Сделайте графику таблицы более сложной или измените тему на протяжении всей игры.
  • Обнаружение необычно быстрых и/или роботизированных движений мыши и кликов (человек никогда не будет перемещать мышь в математически идеальную линию).

Ответ 4

В идеале единственно допустимым решением является создание логики honeypot, которая соблазняет вовлеченного бота, предоставляя искушение более благоприятного логического состояния, которое благоприятствует боту наиболее идеальных поведенческих ответов. Как только бот участвует в honeypot, вы должны постоянно кормить условия бота, которые он предпочитает полагать, что бот не имеет установленного таймаута. Затем бот можно измерить, зарегистрировать и изучить. В дополнение к боту вы также должны иметь сетевые и сеансовые данные, выделенные для изучения, если бот не подключается через TOR.

В этой ситуации детерминированные соображения, подходящие для дифференциации бота от человека, менее выражены, однако детерминированное рассмотрение при идентификации поведения бота становится более серьезным. К сожалению, владелец бота может внести изменения в бота, чтобы предотвратить такую ​​идентификацию, если этот владелец осведомлен о состоянии honeypot или о его логическом рассмотрении.

Ответ 5

Поражение ботеров в покер может принимать две формы: вы можете попытаться определить их и запретить их из системы, или вы можете просто победить их в покере. Избиение их в покере - более интересный академический вопрос.: -)

См. здесь некоторые статьи об избиении покерных ботов: http://www.cs.cmu.edu/~sganzfri/

Ответ 7

Еще одна мысль о том, чтобы возиться с экраном, чтобы его было трудно проверить:

Извлеките карту из целого ряда разных цветов - близких в плане человеческого зрения, но не одинаковых. Это затруднит выбор материала для чтения. На обратной стороне положите фальшивое письмо на карточку в цвета, которые человеческий глаз не будет отделен от фона.

Ответ 8

Является ли проблема с ботами тем фактом, что они играют лучше, чем приличные человеческие игроки, или что они могут ждать около 24/7 для появления плохих игроков, а затем попытаться их доить?

Кроме того, было бы "законным" или "обманом" для кого-то иметь компьютер, сидящий рядом с ним, когда он играл в покер, консультировавшись с другим компьютером за советом?

Я не уверен, как можно утверждать, что пространство для решения для лимита покера "решено", когда на оптимальную стратегию для игрока будет влиять то, что известно об оппонентах. Как любая попытка анализа игроков утверждает, что она настолько совершенна, что ее нельзя улучшить?

Ответ 9

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

Если у вас есть доступ к перемещениям мыши (или, по крайней мере, местам щелчка, которые истинны даже для веб-приложений), должно быть довольно просто распознать ботов, за исключением самых сложных. Люди не перемещают мышь в точную прямую линию, у них есть периоды ускорения и замедления, статистически описываемые распределения местоположения кликов и т.д.

Ответ 10

Посмотрите Ajax Control Toolkit NoBot:

NoBot использует несколько различных методов борьбы с ботами:

* Forcing the client browser to perform a configurable JavaScript calculation and verifying the result as part of the postback. (Ex: the calculation may be a simple numeric one, or may also involve the DOM for added assurance that a browser is involved)

* Enforcing a configurable delay between when a form is requested and when it can be posted back. (Ex: a human is unlikely to complete a form in less than two seconds)

* Enforcing a configurable limit to the number of acceptable requests per IP address per unit of time. (Ex: a human is unlikely to submit the same form more than five times in one minute)

Ответ 11

100% -ное решение невозможно, то, что я намереваюсь, является решением, которое сэкономит деньги, используя ИИ против себя. Имейте экземпляр PokerPirate AI, работающий на стороне сервера и играющий в качестве невидимого игрока в каждой игре. Если какой-либо игрок выполняет слишком много одинаковых действий, то они, вероятно, запускают экземпляр PokerPirate. Это своего рода Honeypot или ловушка, в которую может попасть атакующий. Нападающий может защититься от этой honeypot, сделав своего бота менее успешным. Таким образом, это создает "Кошку и мышь", в которой злоумышленник всегда может украсть деньги, и защитник всегда может сэкономить деньги.

Ответ 12

Есть намного более простые способы. да. многие предложения правильные и необходимы. но около 90% мошенников обнаруживаются слишком простым способом.

если кто-то позволит боту работать для него, он через некоторое время захочет, чтобы второй бот работал на него. (другая машина или вообще) но: он будет использовать тот же пароль, поскольку трудно запомнить 2 (< --- sarcastic)

что осталось: проверить учетные записи с одинаковым поведением игры и тем же хэшем пароля.