Derrotando um bot de pôquer

107

Há um novo bot de pôquer de código aberto chamado PokerPirate . Estou interessado em quaisquer formas criativas em que um aplicativo da web possa detectar / impedir / derrotar um bot de pôquer. (Esta é uma discussão puramente acadêmica, no mesmo espírito que o PokerPirate foi escrito.)

torre
fonte
8
Presumo que você queira dizer " mais maneiras", visto que a primeira / primeira resposta é a sua :-)
David Johnstone
9
Fale com cada jogador.
Lasse V. Karlsen
2
@Lasse: hmm, isso não é suficiente se o jogador for um bot que passa no teste de Turing
lornova
5
Independentemente de ele passar no teste de turing ou não, isso não impede o criador do bot de sentar nas mesas e passar todo o tempo conversando.
Tom Gullen
6
A melhor abordagem é fazer o que Vegas faz: manipular as regras do jogo de forma que a única estratégia vencedora seja ser a casa e depois ser a casa. Nesse ponto, tudo o que um bot faz é perder dinheiro mais rápido, e você pode parar de se importar.
BCS

Respostas:

209

Derrotar um bot da perspectiva do servidor

  1. Muitos sites de pôquer online usam entradas popup de Captcha que são acionadas por atividades suspeitas.

  2. Alguns sites de pôquer monitoram os tempos e padrões de jogo (ou seja, o pior cenário é um jogador que joga 24x7 e 16 mesas continuamente, há uma chance minúscula de que ele seja um humano real. (No entanto, alguns jogadores têm a capacidade de jogar uma mão muito grande volumes que, a olhos inexperientes, pareceriam um bot)

  3. Jogue-o falhas. Se você suspeitar que um jogador é um bot, mude todas as posições das cartas de jogo em alguns pixels na tela, faça-as diferentes cores / designs / padrões para 1/100 mãos e veja se isso as joga. Se ele não puder capturar a tela, ele atingirá o tempo limite em todas as suas decisões e isso é uma evidência de bot bastante conclusiva.

  4. O tempo informa, se um jogador do computador responder às opções em milissegundos de cada vez, sem pausa para pensar em grandes decisões, isso pode ser suspeito

  5. Auto-monitoramento. O site de pôquer pokertableratings.com explora muitos sites grandes. Teve uma recepção mista, alguns amam a transparência, outros odeiam . A vantagem é, no entanto, que houve casos em que estatísticas de jogadores suspeitos (porcentagens VPIP, porcentagens PFR são algumas de um grande número de estatísticas quantificáveis ​​que podem ser registradas) levaram a conclusões de trapaça

  6. Redes de classificação artificialmente inteligentes podem monitorar estatísticas quantificáveis ​​para classificar trapaceiros ou jogadores robóticos.

  7. Na época em que o pôquer online era uma entidade relativamente nova, havia rumores e rumores com evidências limitadas de que alguns softwares clientes de pôquer capturavam telas de desktops de jogadores suspeitos para ver se eles estavam executando programas que os ajudassem. No entanto (mesmo se isso fosse verdade) rodar dois computadores para realizar as duas tarefas de forma independente contornaria isso.

  8. Compartilhar informações entre infratores reincidentes entre vários sites seria benéfico para a indústria, se eles fossem honrados e administrados por pessoas competentes e responsáveis

  9. Alguns bots provavelmente seriam bem simples por design, se você pudesse descobrir seu estilo de jogo e ver como eles agem em situações idênticas (note que isso só é possível com bots não sofisticados jogando uma estratégia muito básica), você poderia descobri-los razoavelmente rápido.

  10. O uso inconsistente de recursos do programa tenderia a tornar o jogador genuíno. Por exemplo, muitos sites de pôquer em jogo têm um botão 'Desistir quando for minha vez'. Se você receber uma mão ruim e estiver esperando que outro jogador decida o que fazer, muitos jogadores irão verificar este botão. Um bot pode usar esses botões. A diferença é que um bot estaria nas extremidades da frequência de uso, eles provavelmente os usariam o tempo todo ou não os usariam. Onde um jogador pode normalmente pressionar 'autofold', mas às vezes ele clica em fold de qualquer maneira, mesmo nas condições mais favoráveis. Por exemplo, um jogador genuíno geralmente pressiona o fold automático, mas desta vez não o faz. Está dobrado para eles sem nenhum outro jogador agindo, agora eles foram apresentados às condições mais favoráveis ​​possíveis. Agora, se eles pressionassem dobra, eles estariam fortemente inclinados a pressionar dobra automática desde o início. Este é um comportamento inconsistente / não otimizado / aleatório, consistente com ser um humano. O tempo avisa quando esses recursos são clicados como outros indicadores. É importante reconhecer que todos esses são indicadores e não provas conclusivas. Todos esses indicadores comportamentais podem ser simulados facilmente.

Derrotar um bot da perspectiva dos jogadores

  1. Tente registrar e coletar o máximo de dados possível usando um software como o PokerTracker

  2. Tenta identificar padrões em seu estilo de jogo

  3. Tente encontrar relações entre o tamanho da aposta em proporção ao pote / # jogadores e a força da mão

  4. Tente calcular seus intervalos de mãos . Um bot de limites baixos provavelmente não blefará com frequência o suficiente para ser uma preocupação estratégica significativa, então construir gamas de mãos altamente precisas para isso não deve ser muito complicado.

  5. Tente encontrar vazamentos em seu jogo por meio de análise de dados e tentativa e erro Uma vez que os vazamentos / padrões foram encontrados, tente explorá-los repetidamente e evitar quaisquer outras situações.

Onde um humano é capaz de adaptação , os bots provavelmente o são menos, e onde os humanos são pesados ​​pelas cadeias de tilt , pensamento orientado para resultados e frustrações , os bots não são. Você pode utilizar isto para o seu benefício.

Então, em essência, não há nada que você possa fazer para pará-lo se o robô for inteligente o suficiente para simular atrasos de tempo real durante as decisões, bem como criar padrões de jogo razoáveis ​​e realistas. Adicione algumas condições aleatórias e um bate-papo simples (o vocabulário dos jogadores de pôquer geralmente é bastante limitado ) e você terá um jogador de IA que será bem difícil de detectar.

O que os bots podem fazer para evitar a detecção

A chave para evitar a detecção seria pensar no problema de todos os ângulos possíveis. Você está tentando simular o comportamento humano inteligente em um mundo muito pequeno e restrito. A maioria das simulações comportamentais que você pode executar são bastante óbvias, mas quanto mais inconsistente e imprevisível for o seu bot, menor será a probabilidade de ser descoberto.

  1. Crie programações de jogo realistas (ou seja, 3–5 vezes por semana, 4 horas por sessão com semanas ímpares aqui e ali durante o ano).

  2. Execute programas para tomar decisões em um computador separado, controlando um computador zumbi no caso de captura de tela de algum site.

  3. Randomize os tempos de ação (não aja imediatamente, espere 0,5–2 segundos por ação)

  4. Tempo reduzido para grandes decisões. Se uma decisão estiver no limite, calcule a decisão e espere um pouco para simular o pensamento.

  5. Uso aleatório de recursos de software cliente. Simule intervalos para ir ao banheiro clicando no botão "negociar" em todas as mesas e faça um intervalo de 5 minutos de vez em quando.

  6. Bate-papo simulado, bate-papo de pôquer é geralmente muito simples de uma linha, nunca geralmente discussão ou debate. Diga coisas como "azar" ou "stfu" em momentos detectáveis ​​apropriados. Ou mesmo que o programador monitore seu bot e participe de um bate-papo durante a execução.

  7. Certifique-se de que os movimentos do mouse sejam realistas. Se as mesas estiverem lado a lado , não tome uma decisão na mesa superior esquerda, então instantaneamente tome uma decisão na mesa inferior direita. A maioria dos softwares de sites agora oferece atalhos de teclado, estes podem ser preferíveis para uso como movimento do mouse.

  8. Faça coisas que simplesmente classificadores de IA não esperam. Por exemplo, uma vez por ano, ligue para eles com uma consulta simples e não complexa ("Socorro, não consigo fazer login hoje!" Ou "A Internet caiu!") É improvável que faça muita diferença, mas se a pessoa que trabalha para o empresa de pôquer é inteligente o suficiente para que eles possam ter reconhecido isso como um indicador confiável.

  9. Sessões perdedoras esporádicas. O tilt pode ser simulado e o bot pode jogar mal e perder algum dinheiro de vez em quando. Todo mundo se inclina em algum ponto.

A preocupação também é que os sites de pôquer não se importam particularmente se bots estão rodando em suas redes, cada jogador vale uma grande quantia em rake e, teoricamente, de um ponto de vista empresarial puramente cínico, a única desvantagem seria a má publicidade se fosse descoberto .

Mesmo quando exploits flagrantes são descobertos (pesquise no google por escândalos da rede Cereus ou Absolute Poker Scandal , é bastante chocante) o negócio parece sobreviver e permanecer saudável, apenas perdendo jogadores bem educados e vencedores (não há muitos). Isso aumenta a proporção de jogadores menos qualificados na rede, o que, por sua vez, atrai os bons jogadores de volta. É um bom e velho truque 22. Um excelente argumento para a regulamentação adequada do mercado.

É importante notar que para cada jogo existe um equilíbrio nash . O pôquer online tem uma linha do tempo da maneira que funciona agora, ele terá que passar para algo mais social (webcam / voip) para que qualquer um possa confiar no futuro (se as pessoas confiarem nele), já que os bots irão assumir o controle eventualmente matematicamente superior e psicologicamente imune. A comunidade do poker AI é muito ativa , alimentada pela academia e / ou pelo benefício de capital.

Versões mais simples de pôquer, como pôquer com limite, quase foram resolvidas em pequenos espaços de busca. É apenas uma questão de tempo antes que versões mais complexas do jogo (variações No Limit / Pot Limit Omaha etc.) se tornem vencíveis para jogadores artificiais.

Conclusão

Os bots sofisticados simplesmente não podem ser detectados até que a indústria mude para um ambiente de jogo online mais social. Isso não resolverá o problema, mas certamente tornará mais difícil para os bots vencerem nos níveis mais baixos. Já vimos uma ligeira mudança com o lançamento do PKR , 3D e uma versão mais interativa e com menos mãos por hora dos outros sites onde o multitabling é bastante complicado para um jogador.

O problema também está relacionado à natureza do setor, mais uma razão para se ater aos sites maiores e mais confiáveis, onde a reputação está cada vez mais integrada ao seu modelo de negócios. Falta de transparência e transarantia fingida não ajudam a causa.

O verdadeiro desafio atualmente para os desenvolvedores de bot é escrever um algoritmo vencedor, isso não é tão trivial quanto parece. Todo mundo que joga pôquer se considera um bom jogador, vencedor ou um ponto de equilíbrio, o que simplesmente não é verdade. É por isso que as pessoas continuam a jogar, mesmo quando perdem dinheiro porque têm a ilusão de que simplesmente não têm sorte, ou que seu estilo de jogo é mal compreendido. Essa arrogância e fraqueza na psicologia humana custou aos jogadores perdedores muito dinheiro e é a razão fundamental pela qual o pôquer ainda pode ser lucrativo.

O pôquer é um jogo extremamente complicado que leva anos para ficar bom (o velho ditado continua verdadeiro, "Dez minutos para aprender, uma vida inteira para dominar"). O elemento sorte é extremamente limitado a longo prazo.

Como qualquer outra profissão, para ficar bom, você precisa estudar por centenas e centenas de horas e jogar por muitos milhares. Você entenderá coisas que jogadores menos experientes não entenderão, identificará coisas que os menos experientes não perceberão. O aprendizado continua por um tempo muito, muito longo, talvez mais do que possamos viver. É um jogo complicado.

Quantas vezes você já viu um jogo a dinheiro de apostas altas na televisão e ouviu alguém gritar "Essa é uma decisão fácil!" assim, provar que os amadores realmente não entendem ou reconhecem a sofisticação do jogo e que realmente acreditam no jogo nesse nível ainda é, em última análise, simples. Não é. Esses jogadores de high stakes (muitas vezes) estão lá na televisão porque eles estão realmente, realmente,Boa. Provavelmente também há um meta-jogo complicado sendo jogado, e o nosso amauer não consegue reconhecer a existência dele. O amador não se colocaria diante de um mestre de xadrez e gritaria para que movesse seu cavalo, mas, devido à dinâmica do pôquer ser uma informação imperfeita, sua psicologia os faz acreditar verdadeiramente no que estão dizendo. Como no xadrez, as decisões podem ser intrincadas, sensíveis e extremamente importantes para o jogo como um todo. Conforme o jogo aumenta em complexidade, decisões triviais não são mais tão triviais, porque seu oponente as espera.

Depois de mover seu bot ou jogo para cima de nível, você inevitavelmente encontrará uma grande população de jogadores mais habilidosos. Então, a complexidade da sua estratégia terá que subir para o próximo nível, levando em consideração as imagens da mesa , balanceamento de alcance , blefes sofisticados e inteligentes (IE não apenas blefando na fraqueza, blefando nos intervalos e blefando na imagem etc), com análise de alcance de mão mais detalhada. É realmente um jogo diferente conforme você sobe.

Uma vez que um bot vencedor foi escrito, sem dúvida o codificador terá habilidade, conhecimento e bom senso suficientes para aplicar o bot de uma maneira indetectável. Isso é trivial para eles.

Portanto, não há realmente nada que você possa fazer. Se você quiser jogar online, entenda os riscos. Nunca arrisque mais dinheiro do que você pode pagar e tente manter registros precisos de gastos para que você não tenha uma estimativa equivocada, irreal e, em última análise, prejudicial de sua própria capacidade. Interrompa as perdas e saia da mesa se não tiver uma vantagem ou se não tiver certeza se tem uma vantagem! Claro, se todos fizessem isso ninguém iria ganhar, essa é a natureza predatória e exploradora do jogo, é daí que vem a competição e é isso que o torna divertido.

Tom Gullen
fonte
3
Pelo menos na época dos monitores analógicos, seria possível ter um agarrador de tela rodando em um computador totalmente separado daquele que está jogando. Detectar tal coisa no software do jogo seria completamente impossível, é claro. Mesmo que o HDCP não permitisse fazer isso com a saída de vídeo de um computador moderno, sempre se poderia usar uma câmera com mira precisa. Se os cartões forem facilmente lidos por um humano, uma máquina não terá problemas.
supercat
Hoje em dia você pode até rodar o jogo em uma VM e o bot fora dela, capturando imagens e enviando eventos de teclado / mouse.
André Paramés
Dê uma olhada no OpenHoldem. A coisa ainda tem algumas extensões DLL para simular o tremor do mouse e a aceleração do mouse semelhante ao humano para clicar nos botões. Se o seu código gerar triplas de probabilidade para Call ou Check / Fold / Raise, será difícil localizar padrões sem possivelmente milhares de mãos.
rndapology de
9

Existem três áreas distintas a serem consideradas. O bot precisa descobrir o estado da mesa, tomar uma decisão e enviar a decisão de volta ao host.

Descobrir o estado da tabela é muito mais fácil se ela for enviada através da rede de alguma forma reconhecível ou exibida para o usuário como texto padrão. Primeiro, torne o reconhecimento de imagem a única opção e, em seguida, torne-o o mais difícil possível. Exiba os cartões em 3D e altere lentamente a orientação e a posição dos cartões. Anime pequenas cintilações ou fogos de artifício na frente das cartas, então qualquer captura de tela pode ficar ilegível, mas leva um tempo até para determinar isso.

Não há nada a ser feito com a tomada de decisão. Tentar decidir se uma decisão foi tomada por um humano ou não é como um teste de turing quase sem informação.

Enviar a decisão de volta pode ser difícil usando 3D novamente. Torne difícil o envio de pacotes diretamente ou envie uma decisão por qualquer meio que não seja clicar em um botão com o mouse. Mova os botões ligeiramente a cada ação ou faça-os flutuar lentamente pela área de jogo enquanto aguarda uma decisão. Desative todos os recursos de tipo de acessibilidade que permitem que os botões sejam encontrados ou manipulados.

desenhado para frente
fonte
3
Segurança por dificuldade. Supondo que você tenha permissão para transmitir um vídeo renderizado do jogo, o objetivo é torná-lo um CAPTCHA móvel.
desenhada para frente em
3
@The Rook: PokerPirate, ao qual você se refere em sua pergunta, não tem absolutamente nada a ver com HTTP. Na verdade, duvido que existam sites de pôquer de apostas que usam HTTP. Suas perguntas, respostas e comentários revelam que você sabe muito pouco sobre o assunto. Você deve tentar saber do que está falando antes de aconselhar as pessoas sobre o que devem fazer. :)
RarrRarrRarr
2
@drawnonward: Se a usabilidade não for uma preocupação, você pode ter segurança cortando todas as conexões de dados, o que é indiscutivelmente uma forma criativa de parar de trapacear. Não vejo como avaliar as medidas de segurança, exceto no contexto da usabilidade.
David Thornley
1
@drawnonward: Claro, mas (a) eu não posso ir a um site de banco sem uma senha, (b) o banco é mais uma necessidade para a maioria das pessoas do que o pôquer online, e (c) não é um incômodo contínuo que persistirá por muito tempo. Essa solução provavelmente será pior do que o problema original.
David Thornley
2
O problema original é garantir que apenas humanos joguem pôquer em uma página da web. Com um site de banco, depois de inserir sua senha, você ganha a confiança do anfitrião. Nesse caso, não há nada que você possa fazer para obter a confiança contínua do host, portanto, o desafio de segurança deve ser contínuo.
drawonward
8

O PokerPirate, como quase todos os bots de pôquer já escritos, funciona raspando a tela e simulando cliques do mouse em um aplicativo de pôquer do Windows. Portanto, o ponto central do sistema é sua capacidade de reconhecer objetos no jogo e realizar ações na janela. Por mais inteligente que seja no pôquer, provavelmente ainda terá problemas com essas operações básicas.

Portanto, maneiras óbvias de impedir esse bot incluem:

  1. Implemente um CAPTCHA antes do jogo ou quando outros fatores sugerirem que um jogador pode ser um bot.
  2. Torne os gráficos da mesa mais complicados ou mude o tema ao longo do jogo.
  3. Detecte movimentos e cliques excepcionalmente rápidos e / ou robóticos do mouse (um ser humano nunca moverá um mouse em uma linha matematicamente perfeita).
Cerin
fonte
2
A maior parte disso é Segurança embora obscuridade. Tudo isso pode ser quebrado, incluindo o captcha. Embora eu admita que essa seja a parte mais difícil de quebrar. (+1 não existe uma solução 100% e muito do que foi descrito poderia ser usado com outras técnicas.)
rook
2
Quão bons são os bots de captcha agora? Vou dizer-lhe isto: metade das imagens que recebo de Google Apps são impossível para um ser humano para ler.
WCWedin
Toda a segurança do computador é feita através da obscuridade. O motivo pelo qual alguém não consegue ler um e-mail criptografado é porque não consegue encontrar a chave privada com facilidade. Mas com tempo e recursos de computação suficientes, isso também pode ser "quebrado". A maioria dos captchas são muito bons e eliminarão 99,99% dos bots.
Cerin
5

Idealmente, a única solução válida é criar uma lógica de honeypot que atraia um bot engajado, fornecendo a tentação de uma condição lógica mais favorável que favoreça as respostas comportamentais mais ideais do bot. Uma vez que o bot está envolvido no honeypot, você deve alimentar continuamente as condições do bot que ele prefere, presumindo que o bot não tenha um tempo limite definido. Então o bot pode ser medido, registrado e estudado. Além do bot, você também teria os dados da rede e da sessão isolados para estudo, desde que o bot não estivesse se conectando via TOR.

Nesta situação, as considerações determinísticas adequadas para diferenciar um bot de um humano são menos severas; no entanto, as considerações determinísticas na identificação do comportamento do bot tornam-se mais severas. Infelizmente, o proprietário do bot pode fazer alterações no bot para evitar tal identificação se esse proprietário estiver ciente da condição do honeypot ou da consideração lógica disso.


fonte
3
Citando Sun Tzu: "Conheça seu inimigo". Evite seus pontos fortes e explore seus pontos fracos.
jweyrich
Não é uma má ideia e estou interessado em saber como seria esse software. Você se preocupa em elaborar uma condição específica?
torre
1
Os pontos de saída do Tor são bastante limitados. Qualquer jogador que se conecta por meio de pontos de existência deve ser suspeito.
Christian
Criar um honeypot pode ficar muito caro para um site de pôquer
Tom Gullen
Você pode simplesmente fazer pensar que está ganhando dinheiro.
Jeff Davis
4

Derrotar bots de pôquer pode assumir duas formas: você pode tentar identificá-los e bani-los do sistema ou pode simplesmente vencê-los no pôquer. Vencê-los no pôquer é a questão acadêmica mais interessante. :-)

Veja aqui alguns artigos sobre como vencer os bots de pôquer: http://www.cs.cmu.edu/~sganzfri/

Aaron
fonte
2

Outra ideia em mexer na tela para dificultar a digitalização:

Faça o cartão com uma série de cores diferentes - feche em termos de olhos humanos, mas não o mesmo. Isso tornaria mais difícil escolher o material para ler. Por outro lado, coloque uma escrita falsa no cartão em cores que o olho humano não separará do fundo.

Loren Pechtel
fonte
2
Infelizmente, isso seria muito fácil de derrotar para qualquer programador concorrente, pois eles rastreariam faixas de cores de rascunho e não valores exatos ignorando essa solução.
Tom Gullen
As faixas de cores funcionariam se fossem fixas - mas e se você continuasse mudando as coisas? Significaria que seu raspador teria que ser programado para entender a visão humana. Não seria impossível, mas tornaria as coisas muito mais difíceis.
Loren Pechtel
Plausível, mas vai prejudicar significativamente a experiência dos usuários válidos do software, o que provavelmente é um mau negócio.
Tom Gullen
Muito fácil de derrotar. Já escrevi um bot de pôquer antes e faço o reconhecimento de cartas calculando a semelhança de imagens dentro de uma caixa delimitadora. Mesmo que nenhum dos pixels seja exatamente igual (seja porque as cores do cartão ou a localização da tela são ligeiramente alteradas em cada um), ainda posso usar essas medidas de semelhança para identificar o cartão "mais provável".
benjismith
E por que você acha que as cores devem permanecer semelhantes? Circule por cores totalmente diferentes e circule pelo plano de fundo - estou imaginando um efeito como uma onda que continua varrendo as cartas e mudando as cores. Mantenha bastante contraste e certifique-se de que as cores resultantes não sejam feias.
Loren Pechtel
2

O problema com os bots é o fato de que eles jogam melhor do que jogadores humanos decentes, ou que eles podem esperar 24 horas por dia, 7 dias por semana até que jogadores ruins apareçam e então tentam dominá-los?

Além disso, seria "legítimo" ou "trapaça" alguém ter um computador ao lado dele enquanto ele jogava pôquer, consultando aquele outro computador para obter conselhos?

Não tenho certeza de como alguém pode reivindicar o espaço de solução para o pôquer com limite "resolvido" quando a estratégia ideal para um jogador será influenciada pelo que se sabe sobre os oponentes. Como pode qualquer tentativa de analisar jogadores ser tão perfeita que não poderia ser melhorada?

supergato
fonte
Aqui está uma discussão interessante sobre se o pôquer pode ser resolvido: forumserver.twoplustwo.com/29/news-views-gossip/… Alguns dos participantes são muito conceituados. O problema é que teoricamente um bot terá um desempenho imbatível. Além disso, o software que você descreve para 'ajudá-lo' é uma área cinzenta, muitos sites permitem softwares de análise de dados como o PokerTracker / PokerOffice, mas traçam o limite nas calculadoras ICM e outras ferramentas de tomada de decisão matemática (por exemplo, são extremamente úteis no hiper estratégia de jogo final do torneio turbo).
Tom Gullen
1

Se você tiver acesso a muitas correspondências, poderá adotar uma abordagem de mineração de dados. A força de jogo de um AI deve ser bastante consistente, embora existam provavelmente padrões simples para humanos - mais fraca nas primeiras rodadas de aquecimento e a força se deteriora depois de jogar por um longo tempo. Além disso, o tempo de decisão humana provavelmente aumenta quando há mais dinheiro em jogo.

Se você tiver acesso aos movimentos do mouse (ou pelo menos clicar em locais, o que é verdadeiro mesmo para aplicativos da web), deve ser bastante simples reconhecer os bots, exceto para os mais sofisticados. Os humanos não movem o mouse em uma linha reta exata, eles têm períodos de aceleração e desaceleração, distribuições de localização de cliques descritíveis estatisticamente, etc.

Tgr
fonte
Muitos sites de pôquer agora implementam atalhos de teclado para múltiplas mesas, então você pode eliminar a necessidade de um mouse em um bot. Eu também não acho que a decisão aumenta frequentemente com dinheiro em jogo, está principalmente relacionado à dificuldade de decisão.
Tom Gullen
1

Dê uma olhada no Ajax Control Toolkit NoBot :

NoBot emprega algumas técnicas diferentes de anti-bot:

* Forcing the client's 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)
lmsasu
fonte
0

Uma solução 100% impossível, o que estou propondo é uma solução que economize dinheiro usando a IA contra ela mesma. Tenha uma instância de IA do PokerPirate rodando no servidor e jogando como um jogador invisível em todos os jogos. Se algum jogador realizar muitas ações idênticas, provavelmente está executando uma instância do PokerPirate. Este é um tipo de Honeypot ou armadilha em que o invasor pode cair. O invasor pode se defender contra esse honeypot tornando seu bot menos bem-sucedido. Portanto, isso está criando um veio do "Gato e Rato" em que o atacante sempre pode roubar algum dinheiro e o defensor sempre pode economizar algum dinheiro.

torre
fonte
5
Pena que você excluiu sua outra resposta quase idêntica, pois ela continha um feedback interessante.
Paul Dixon
Isso assume que há apenas um bot jogando pôquer, e que um ser humano nunca faria as mesmas coisas que um bot faria.
drawonward
@drawnonward Um humano não vai agir como um bot o tempo todo , há um fator de confusão aqui.
torre
3
@TheRook 'Jogar' AI's 'deve ser puramente matemático e sempre há a' resposta certa '.' Isso só é verdade em jogos de informação completa, dos quais o pôquer não é. Um jogador que sempre realiza a mesma ação no mesmo estado se torna previsível e, portanto, fácil de derrotar. Os melhores bots terão elementos de aleatoriedade. Até mesmo o mais matemático dos jogadores recomendará comportamentos variados, mesmo na mesma situação (geralmente com alguma% de probabilidade).
Davy8
1
@The Rook Eu não era - era um ambiente acadêmico, no entanto, descobri uma referência (e praticamente qualquer livro de pôquer sério que você aprender vai concordar que em um alto nível de jogo a imprevisibilidade é crucial) sciencenews.org/sn_arc98/ 7_18_98 / bob1.htm Algumas citações:"We've been working on categorizing and understanding styles of play, [...] it gets more difficult in games against top players because they mix up their play deliberately to confuse you." Being unpredictable is a good strategy, he adds. "If our computer is going to beat the world champion, it's got to do something similar."
Davy8
-2

Existem maneiras muito mais fáceis. sim. muitas das sugestões estão certas e necessárias. mas cerca de 90% das fraudes são detectadas de maneira muito simples.

se alguém deixa um bot trabalhar para ele, ele vai, depois de algum tempo, querer que um segundo bot trabalhe para ele. (outra máquina ou qualquer) mas: ele usará a mesma senha, pois é difícil lembrar 2 (<--- sarcástico)

o que resta: verifique as contas com o mesmo comportamento de jogo e mesmo hash de senha.

cRichter
fonte
Como é confiável? Acho que MUITAS pessoas diferentes estão usando a mesma senha. Nem me fale de uma senha como a data de nascimento, ou simplesmente "azerty" ou "senha".
DuoSRX
6
Salgue seus hashes! > = (
WCWedin de
1
@WCWedin boa chamada, todos os hashes de senha devem usar um sal exclusivo.
torre
@DuoSRX verdadeiro, não confiável, mas uma boa dica. toda a lista de resultados vai para a equipe de fraude, que faz uma verificação dos antecedentes das contas. @WCWedin sim. nobrainer ;-)
cRichter