Einen Poker Bot besiegen


107

Es gibt einen neuen Open Source Poker Bot namens PokerPirate . Ich interessiere mich für kreative Möglichkeiten, wie eine Webanwendung einen Poker-Bot erkennen / vereiteln / besiegen kann. (Dies ist eine rein akademische Diskussion im gleichen Sinne wie PokerPirate.)


8
Ich nehme an, Sie meinen "keine weiteren Möglichkeiten", da die oberste / erste Antwort Ihre eigene ist :-)
David Johnstone

9
Sprich mit jedem Spieler.
Lasse V. Karlsen

2
@Lasse: hmm, das ist nicht genug, wenn der Spieler ein Bot ist, der den Turing-Test besteht
lornova

5
Unabhängig davon, ob es den Turing-Test bestehen könnte oder nicht, es hält den Bot-Schöpfer nicht davon ab, an den Tischen zu sitzen und seine ganze Zeit mit Chatten zu verbringen.
Tom Gullen

6
Der beste Ansatz ist, das zu tun, was Vegas tut: die Spielregeln zu manipulieren, sodass die einzige Gewinnstrategie darin besteht, das Haus und dann das Haus zu sein. An diesem Punkt verliert ein Bot nur noch schneller Geld, und Sie können die Pflege beenden.
BCS

Antworten:


209

Einen Bot aus der serverseitigen Perspektive besiegen

  1. Viele Online-Pokerseiten verwenden Popup- Captcha- Eingaben, die durch verdächtige Aktivitäten ausgelöst werden.

  2. Einige Pokerseiten überwachen die Spielzeiten und -muster (dh im schlimmsten Fall spielt ein Spieler 24x7 und 16 Tische ununterbrochen, es besteht eine winzige Chance, dass dies ein echter Mensch ist. (Einige Spieler haben jedoch die Fähigkeit, sehr große Hände zu spielen Bände, die für das unerfahrene Auge ein Bot zu sein scheinen)

  3. Wirf es Pannen. Wenn Sie den Verdacht haben, dass ein Spieler ein Bot ist, ändern Sie alle seine Spielkartenpositionen um einige Pixel auf dem Bildschirm, ändern Sie die Farben / Designs / Muster für 1/100 Hände und prüfen Sie, ob sie geworfen werden. Wenn es nicht in der Lage ist, Bildschirmaufnahmen zu machen, tritt bei all seinen Entscheidungen eine Zeitüberschreitung auf, und das ist ein ziemlich schlüssiger Bot-Beweis.

  4. Laut Timing kann dies verdächtig sein, wenn ein Computer-Player in Millisekunden auf Optionen reagiert, ohne über große Entscheidungen nachzudenken

  5. Selbstüberwachung. Auf der Poker-Website pokertableratings.com werden viele große Websites abgebaut . Es wurde mit einem gemischten Empfang aufgenommen, einige lieben die Transparenz, andere hassen es . Der Vorteil ist jedoch, dass es Fälle gab, in denen verdächtige Spielerstatistiken (VPIP-Prozentsätze, PFR-Prozentsätze sind einige von vielen quantifizierbaren Statistiken, die aufgezeichnet werden können) zu Schlussfolgerungen des Betrugs geführt haben

  6. Künstlich intelligente Klassifizierungsnetzwerke könnten quantifizierbare Statistiken überwachen, um betrügerische Betrüger oder Roboterspieler zu klassifizieren.

  7. Damals, als Online-Poker eine ziemlich neue Einheit war, gab es Gerüchte und Gespräche mit begrenzten Beweisen, dass einige Screenshots von Poker-Client-Software von Desktops verdächtiger Spieler zeigten, ob sie Programme ausführten, die sie unterstützten. Wenn dies jedoch der Fall wäre, würde dies umgangen, wenn zwei Computer ausgeführt würden, um die beiden Aufgaben unabhängig voneinander auszuführen.

  8. Der Austausch von Informationen zwischen Wiederholungstätern zwischen mehreren Standorten wäre für die Branche von Vorteil, wenn sie nur ehrenwert wären und von kompetenten Verantwortlichen betrieben würden

  9. Einige Bots wären wahrscheinlich recht einfach. Wenn Sie ihren Spielstil entdecken und sehen könnten, wie sie sich in identischen Situationen verhalten (beachten Sie, dass dies nur mit nicht anspruchsvollen Bots möglich ist, die eine sehr grundlegende Strategie spielen), könnten Sie sie relativ schnell entdecken.

  10. Eine inkonsistente Verwendung von Programmfunktionen würde dazu führen, dass ein Spieler echt ist. Nehmen wir zum Beispiel, viele Pokerseiten im Spiel haben einen "Fold wenn ich an der Reihe bin" Button. Wenn Sie eine schlechte Hand bekommen und darauf warten, dass ein anderer Spieler entscheidet, was zu tun ist, überprüfen viele Spieler diese Schaltfläche. Ein Bot kann diese Schaltflächen verwenden. Der Unterschied besteht darin, dass sich ein Bot an den äußersten Enden der Nutzungshäufigkeit befindet und diese wahrscheinlich entweder ständig oder gar nicht verwendet. Während ein Spieler normalerweise auf "Autofold" drückt, klickt er manchmal trotzdem auf "Fold", selbst unter den günstigsten Bedingungen. Zum Beispiel drückt ein echter Spieler normalerweise auf Auto Fold, diesmal jedoch nicht. Es ist für sie gefaltet, ohne dass ein anderer Spieler handelt, jetzt wurde ihnen die günstigste Bedingung präsentiert. Wenn sie nun auf Falz drücken, wären sie von Anfang an stark geneigt gewesen, auf Autofalz zu drücken. Dies ist inkonsistentes / nicht optimiertes / zufälliges Verhalten, das mit dem Menschsein übereinstimmt. Das Timing zeigt an, wann auf diese Funktionen geklickt wird. Dies sind weitere Indikatoren. Es ist wichtig zu erkennen, dass dies alles Indikatoren und kein schlüssiger Beweis sind. Alle diese Verhaltensindikatoren können einfach simuliert werden.

Einen Bot aus der Sicht eines Spielers besiegen

  1. Versuchen Sie, mit Software wie PokerTracker so viele Daten wie möglich zu protokollieren und zu sammeln

  2. Versuchen Sie, Muster in ihrem Spielstil zu identifizieren

  3. Versuchen Sie, Beziehungen zwischen der Einsatzgröße im Verhältnis zu Pot / # -Spielern und der Handstärke zu finden

  4. Versuchen Sie , seine Berechnung Hand reicht . Ein Bot mit niedrigen Einsätzen wird wahrscheinlich nicht häufig genug bluffen, um ein bedeutendes strategisches Problem zu sein, daher sollte es nicht zu schwierig sein, hochpräzise Handbereiche dafür zu konstruieren.

  5. Versuchen Sie, Lecks in seinem Spiel durch Datenanalyse und Versuch und Irrtum zu finden. Sobald Lecks / Muster gefunden wurden, versuchen Sie, diese wiederholt auszunutzen und andere Situationen zu vermeiden.

Wo ein Mensch zur Anpassung fähig ist , sind Bots wahrscheinlich weniger dazu fähig , und wo Menschen durch die Ketten der Neigung , ergebnisorientiertes Denken und Frustrationen gewichtet werden , sind Bots dies nicht. Sie können dies zu Ihrem Vorteil nutzen.

Im Wesentlichen können Sie also nichts dagegen tun, wenn der Roboter klug genug ist, um echte Timing-Verzögerungen bei Entscheidungen zu simulieren und vernünftige und realistische Spielmuster zu erstellen. Wenn Sie einige zufällige Bedingungen und einen einfachen Back-Chat verwenden (das Lexikon der Pokerspieler ist normalerweise ziemlich begrenzt ), haben Sie selbst einen KI-Spieler, der ziemlich schwer zu erkennen sein wird.

Was Bots tun könnten, um eine Erkennung zu vermeiden

Der Schlüssel, um eine Erkennung zu vermeiden, besteht darin, das Problem aus möglichst vielen Blickwinkeln zu betrachten. Sie versuchen, intelligentes menschliches Verhalten in einer sehr kleinen und einschränkenden Welt zu simulieren. Die meisten Verhaltenssimulationen, die Sie ausführen können, sind ziemlich offensichtlich. Je inkonsistenter und unvorhersehbarer Ihr Bot ist, desto weniger wahrscheinlich ist es, dass er entdeckt wird.

  1. Erstellen Sie realistische Spielpläne (dh 3–5 Mal pro Woche, 4 Stunden pro Sitzung, wobei die ungerade Woche hier und da während des Jahres ausfällt).

  2. Führen Sie Programme aus, um Entscheidungen auf einem separaten Computer zu treffen, und steuern Sie einen Zombie-Computer, falls Websites Bildschirmaufnahmen machen.

  3. Zufällige Aktionszeiten (nicht sofort handeln, 0,5 bis 2 Sekunden pro Aktion warten)

  4. Zeit für große Entscheidungen. Wenn eine Entscheidung grenzwertig ist, berechnen Sie die Entscheidung und warten Sie eine Weile, um Gedanken zu simulieren.

  5. Zufällige Verwendung von Client-Softwarefunktionen. Simulieren Sie Toilettenpausen, indem Sie auf allen Tischen auf die Schaltfläche "Austeilen" klicken, und machen Sie ab und zu eine Pause von 5 Minuten.

  6. Simulierter Chat, Poker-Chat ist oft ein sehr einfacher Einzeiler, normalerweise keine Diskussion oder Debatte. Sagen Sie Dinge wie "unglücklich" oder "stfu" zu geeigneten erkennbaren Zeitpunkten. Oder lassen Sie den Codierer sogar seinen Bot überwachen und während der Ausführung chatten.

  7. Stellen Sie sicher, dass die Mausbewegungen realistisch sind. Wenn Tabellen gekachelt sind, treffen Sie keine Entscheidung für die Tabelle oben links, und treffen Sie sie sofort für die Tabelle unten rechts. Die meisten Websitesoftware bieten jetzt Tastaturkürzel an. Diese können vorzugsweise als Mausbewegung verwendet werden.

  8. Machen Sie Dinge, die KI-Klassifikatoren ganz einfach nicht erwarten. Rufen Sie sie beispielsweise einmal im Jahr mit einer einfachen, nicht komplexen Abfrage an ("Hilfe, ich kann mich heute nicht anmelden!" Oder "Das Internet ist ausgefallen!"). Es ist unwahrscheinlich, dass dies einen großen Unterschied macht, aber wenn die Person, die für die Die Pokerfirma ist klug genug, sie könnte es als einen verlässlichen Indikator erkannt haben.

  9. Sporadisch verlorene Sitzungen. Tilt kann simuliert werden und der Bot kann schlecht spielen und ab und zu etwas Geld verlieren. Jeder kippt irgendwann.

Die Sorge ist auch, dass es Poker-Websites nicht besonders wichtig ist, ob Bots in ihren Netzwerken laufen, jeder Spieler eine große Menge an Rake wert ist und theoretisch aus rein zynischer geschäftlicher Sicht der einzige Nachteil eine schlechte Presse wäre, wenn sie entdeckt würde .

Selbst wenn offensichtliche Exploits entdeckt wurden (Suche auf Google nach Cereus-Netzwerkskandalen oder Absolute Poker Scandal , es ist ziemlich schockierend), scheint das Geschäft zu überleben und gesund zu bleiben, nur gut ausgebildete und gewinnende Spieler zu verlieren (von denen es nicht viele gibt). Dies erhöht den Anteil weniger erfahrener Spieler am Netzwerk, was wiederum die guten Spieler zurückzieht. Es ist ein guter, altmodischer Fang 22. Ein ausgezeichnetes Argument für eine ordnungsgemäße Marktregulierung.

Es ist wichtig zu beachten, dass für jedes Spiel ein Nash- Gleichgewicht besteht . Online-Poker hat eine Zeitleiste, wie sie jetzt läuft. Es muss sich in etwas Sozialeres (Webcam / Voip) verwandeln, damit jeder in Zukunft darauf vertrauen kann (wenn die Leute ihm vertrauen), da Bots irgendwann genauso mathematisch übernehmen werden überlegen und psychisch immun. Die Poker-KI-Community ist sehr aktiv und wird von akademischen und / oder Kapitalvorteilen angetrieben.

Einfachere Versionen von Poker wie Limit Poker wurden in kleinen Suchbereichen nahezu gelöst . Es ist nur eine Frage der Zeit, bis komplexere Versionen des Spiels (No Limit-Variationen / Pot Limit Omaha usw.) für künstliche Spieler schlagbar werden.

Fazit

Anspruchsvolle Bots können erst erkannt werden, wenn die Branche zu einer sozialeren Online-Gaming-Umgebung übergeht. Dies wird das Problem nicht lösen, aber es wird Bots sicherlich schwerer machen, auf den unteren Ebenen zu gewinnen. Wir haben bereits eine leichte Verschiebung mit der Veröffentlichung von PKR , 3D und einer interaktiveren Version der anderen Websites mit weniger Händen pro Stunde gesehen, bei denen Multitabling für einen Spieler ziemlich schwierig zu erreichen ist.

Das Problem leidet auch unter der Natur der Branche, ein weiterer Grund, sich an die größeren, seriöseren Websites zu halten, auf denen die Reputation immer mehr in ihr Geschäftsmodell integriert wurde. Mangelnde Transparenz und vorgetäuschte Transaranz helfen der Sache nicht weiter.

Die eigentliche Herausforderung für Bot-Entwickler besteht derzeit darin, einen erfolgreichen Algorithmus zu schreiben. Dies ist nicht so trivial, wie es scheint. Jeder, der Poker spielt, hält sich für einen guten, gewinnenden oder ausgeglichenen Spieler, was einfach nicht stimmt. Deshalb spielen die Leute weiter, auch wenn sie Geld verlieren, weil sie der Illusion ausgesetzt sind, dass sie einfach Pech haben oder ihr Spielstil missverstanden wird. Diese Arroganz und Schwäche in der menschlichen Psychologie hat es viel Geld gekostet, Spieler zu verlieren, und ist der grundlegende Grund, warum Poker immer noch profitabel sein kann.

Poker ist ein äußerst kompliziertes Spiel, das Jahre braucht, um gut zu werden (das alte Sprichwort bleibt wahr: "Zehn Minuten lernen, ein Leben lang meistern"). Das Glückselement ist langfristig äußerst begrenzt.

Wie in jedem anderen Beruf muss man Hunderte und Hunderte von Stunden studieren und viele Tausend spielen, um gut zu werden. Sie werden Dinge verstehen, die weniger erfahrene Spieler nicht verstehen, Dinge entdecken, die weniger erfahrene nicht erkennen. Das Lernen dauert sehr, sehr lange, vielleicht länger als wir jemals leben können. Es ist ein kompliziertes Spiel.

Wie oft haben Sie im Fernsehen ein Cash Game mit hohen Einsätzen gesehen und jemanden schreien hören: "Das ist ein einfacher Anruf!" Auf diese Weise zu beweisen, dass Amateure die Raffinesse im Spiel wirklich nicht verstehen oder erkennen und das Spiel auf dieser Ebene wirklich glauben, ist letztendlich immer noch einfach. Ist es nicht. Diese High Stakes-Spieler (oft) sind im Fernsehen zu sehen, weil sie wirklich wirklich wirklich wirklich sindgut. Es wird wahrscheinlich auch ein kompliziertes Metaspiel gespielt, dessen Existenz unser Amauer nicht erkennen kann. Der Amateur würde nicht über einem Schachmeister stehen und sie anschreien, um ihren Ritter zu bewegen, aber aufgrund der Dynamik des Pokers als unvollständige Information lässt ihre Psychologie sie wirklich glauben, was sie sagen. Wie im Schach können Entscheidungen kompliziert, sensibel und für das Gesamtspiel äußerst wichtig sein. Mit zunehmender Komplexität des Spiels sind triviale Entscheidungen nicht mehr so ​​trivial, weil Ihr Gegner sie erwartet.

Sobald Sie Ihren Bot oder Ihr Spiel nach oben bewegen, werden Sie unweigerlich auf eine größere Anzahl erfahrener Spieler stoßen. Dann muss die Komplexität Ihrer Strategie unter Berücksichtigung von Tabellenbildern , Bereichsausgleich , ausgefeiltem und intelligentem Bluffen (dh nicht nur Bluffen bei Schwäche, Bluffen bei Entfernungen und Bluffen bei Bildern usw.) auf die nächste Ebene steigen. mit detaillierterer Handbereichsanalyse. Es ist wirklich ein anderes Spiel, wenn Sie aufsteigen.

Sobald ein Gewinner-Bot geschrieben wurde, verfügt der Codierer ohne Zweifel über genügend Fähigkeiten, Kenntnisse und gesunden Menschenverstand, um den Bot nicht nachweisbar anzuwenden. Das ist für sie trivial.

Sie können also wirklich nichts tun. Wenn Sie online spielen möchten, verstehen Sie die Risiken. Riskieren Sie niemals mehr Geld, als Sie sich leisten können, und versuchen Sie, genaue Ausgabenaufzeichnungen zu führen, damit Sie keine fehlgeleiteten, unrealistischen und letztendlich schädlichen Einschätzungen Ihrer eigenen Fähigkeiten haben. Haben Sie Stop-Losses und verlassen Sie den Tisch, wenn Sie keine Kante haben oder wenn Sie sich nicht sicher sind, ob Sie eine Kante haben! Wenn jeder das tun würde, dass niemand gewinnen würde, ist das natürlich die räuberische und ausbeuterische Natur des Spiels, daher kommt die Konkurrenz und das macht Spaß.


3
Zumindest in den Tagen analoger Monitore wäre es möglich, einen Screen-Grabber auf einem Computer laufen zu lassen, der von demjenigen, der das Spiel spielt, völlig getrennt war. Es wäre natürlich völlig unmöglich, so etwas in der Software des Spiels zu erkennen. Selbst wenn HDCP es einem nicht erlauben würde, so etwas mit der Videoausgabe eines modernen Computers zu tun, könnte man immer eine präzise ausgerichtete Kamera verwenden. Wenn Karten für einen Menschen leicht lesbar sind, hat eine Maschine keine Probleme.
Supercat

Heutzutage können Sie das Spiel sogar auf einer VM und dem Bot außerhalb ausführen, Bilder aufnehmen und Tastatur- / Mausereignisse senden.
André Paramés

Schauen Sie sich OpenHoldem an. Das Ding hat sogar einige DLL-Erweiterungen, um Mausjitter und eine menschenähnliche Mausbeschleunigung zum Klicken auf die Schaltflächen zu simulieren. Wenn Ihr Code Wahrscheinlichkeits-Tripel für Call oder Check / Fold / Raise generiert, ist es schwierig, Muster ohne möglicherweise Tausende von Händen zu finden.
Rndapology

9

Es sind drei separate Bereiche zu berücksichtigen. Der Bot muss den Status der Tabelle herausfinden, eine Entscheidung treffen und die Entscheidung an den Host zurücksenden.

Das Herausfinden des Status der Tabelle ist viel einfacher, wenn sie in erkennbarer Form über das Kabel gesendet oder dem Benutzer als Standardtext angezeigt wird. Machen Sie zuerst die Bilderkennung zur einzigen Option und machen Sie es dann so schwer wie möglich. Zeigen Sie die Karten in 3D an und ändern Sie langsam die Ausrichtung und Position der Karten. Animieren Sie kleine Flackern oder Feuerwerke vor den Karten, sodass ein bestimmter Screenshot möglicherweise unleserlich ist, aber es dauert eine Weile, bis Sie dies feststellen.

Mit der Entscheidung ist nichts zu tun. Der Versuch zu entscheiden, ob eine Entscheidung von einem Menschen getroffen wurde oder nicht, ist wie ein Test ohne Informationen.

Das Zurücksenden der Entscheidung kann durch erneutes Verwenden von 3D erschwert werden. Machen Sie es schwierig, Pakete direkt zu senden oder eine Entscheidung auf andere Weise zu übermitteln, als auf eine Schaltfläche mit der Maus zu klicken. Bewegen Sie die Tasten bei jeder Aktion leicht oder lassen Sie sie langsam im Spielbereich schweben, während Sie auf eine Entscheidung warten. Deaktivieren Sie alle Funktionen für Eingabehilfen, mit denen Schaltflächen gefunden oder bearbeitet werden können.


3
Sicherheit durch Schwierigkeiten. Angenommen, Sie dürfen ein gerendertes Video des Spiels streamen, besteht das Ziel darin, es zu einem bewegenden CAPTCHA zu machen.
vorwärts gezogen

3
@ The Rook: PokerPirate, auf das Sie in Ihrer Frage verweisen, hat absolut nichts mit HTTP zu tun. Tatsächlich bezweifle ich, dass es Glücksspiel-Pokerseiten gibt, die HTTP verwenden. Ihre Frage, Antwort und Kommentare zeigen, dass Sie sehr wenig über dieses Thema wissen. Sie sollten versuchen zu wissen, wovon Sie sprechen, bevor Sie den Leuten Ratschläge geben, was sie tun sollen. :)
RarrRarrRarr

2
@drawnonward: Wenn die Benutzerfreundlichkeit keine Rolle spielt, können Sie Sicherheit haben, indem Sie alle Datenverbindungen trennen. Dies ist wohl eine kreative Methode, um Betrug zu stoppen. Ich sehe keine Bewertung von Sicherheitsmaßnahmen, außer im Zusammenhang mit der Benutzerfreundlichkeit.
David Thornley

1
@drawnonward: Sicher, aber (a) ich kann nicht ohne Passwort auf eine Bankenseite gehen, (b) Bankgeschäfte sind für die meisten Menschen eine größere Notwendigkeit als Online-Poker, und (c) es ist kein anhaltender Ärger, dass wird für eine lange Zeit bestehen bleiben. Diese Lösung wird wahrscheinlich schlechter sein als das ursprüngliche Problem.
David Thornley

2
Das ursprüngliche Problem besteht darin, sicherzustellen, dass nur Menschen auf einer Webseite Poker spielen. Bei einer Bank-Site gewinnen Sie nach Eingabe Ihres Passworts das Vertrauen des Hosts. In diesem Fall können Sie nichts tun, um das anhaltende Vertrauen des Hosts zu gewinnen. Daher muss die Sicherheitsherausforderung kontinuierlich sein.
gezogen

8

PokerPirate funktioniert wie fast jeder Poker-Bot, der jemals geschrieben wurde, durch Scraping und Simulieren von Mausklicks in einer Windows-Pokeranwendung. Daher ist der Dreh- und Angelpunkt des Systems seine Fähigkeit, Objekte im Spiel zu erkennen und Aktionen im Fenster auszuführen. So klug es auch beim Poker sein mag, es hat wahrscheinlich immer noch Probleme mit diesen grundlegenden Operationen.

Offensichtliche Möglichkeiten, diesen Bot zu vereiteln, wären daher:

  1. Implementieren Sie ein CAPTCHA, entweder vor dem Spiel oder wenn andere Faktoren darauf hindeuten, dass ein Spieler ein Bot ist.
  2. Machen Sie die Tabellengrafiken komplizierter oder ändern Sie das Thema im Laufe des Spiels.
  3. Erkennen Sie ungewöhnlich schnelle und / oder robotergesteuerte Mausbewegungen und -klicks (ein Mensch wird niemals eine Maus in einer mathematisch perfekten Linie bewegen).

2
Der Großteil davon ist Sicherheit, obwohl Dunkelheit. All dies kann gebrochen werden, einschließlich der Captcha. Obwohl ich zugebe, dass es am schwierigsten ist, das zu brechen. (+1 Es gibt keine 100% ige Lösung und vieles davon könnte mit anderen Techniken verwendet werden.)
Turm

2
Wie gut sind Captcha-Bots jetzt überhaupt? Ich sage Ihnen Folgendes: Die Hälfte der Bilder, die ich von Google Apps erhalte, kann ein Mensch nicht lesen.
WCWedin

Alle Computersicherheit erfolgt durch Dunkelheit. Der Grund, warum jemand eine verschlüsselte E-Mail nicht lesen kann, ist, dass er den privaten Schlüssel nicht leicht finden kann. Aber wenn genügend Zeit und Rechenressourcen vorhanden sind, kann auch dies "kaputt" gehen. Die meisten Captchas sind ziemlich gut und werden 99,99% der Bots aussortieren.
Cerin

5

Im Idealfall besteht die einzig gültige Lösung darin, eine Honeypot-Logik zu erstellen, die einen engagierten Bot anlockt, indem die Versuchung einer günstigeren Logikbedingung bereitgestellt wird, die die idealsten Verhaltensreaktionen des Bots begünstigt. Sobald der Bot mit dem Honeypot beschäftigt ist, müssen Sie kontinuierlich die Bot-Bedingungen füttern, die er bevorzugt, vorausgesetzt, der Bot hat kein festgelegtes Timeout. Dann kann der Bot gemessen, protokolliert und untersucht werden. Zusätzlich zum Bot würden Sie auch die Netzwerk- und Sitzungsdaten für das Studium isolieren lassen, vorausgesetzt, der Bot stellt keine Verbindung über TOR her.

In dieser Situation sind deterministische Überlegungen, die zur Unterscheidung eines Bots von einem Menschen geeignet sind, weniger streng, jedoch werden deterministische Überlegungen bei der Identifizierung des Verhaltens des Bots strenger. Leider kann der Besitzer des Bots Änderungen am Bot vornehmen, um eine solche Identifizierung zu verhindern, wenn dieser Besitzer den Zustand des Honigtopfs oder dessen logische Überlegung kennt.


3
Zitat von Sun Tzu: "Kenne deinen Feind". Vermeiden Sie seine Stärken und erforschen Sie seine Schwächen.
Jweyrich

Es ist keine schlechte Idee und ich bin daran interessiert, wie diese Software aussehen würde. Möchten Sie eine bestimmte Bedingung näher erläutern?
Turm

1
Die Austrittspunkte sind ziemlich begrenzt. Jeder Spieler, der sich über einen Tor verbindet, sollte verdächtig sein.
Christian

Das Erstellen eines Honeypots könnte für eine Pokerseite sehr teuer werden
Tom Gullen

Sie können es einfach denken lassen, dass es Geld verdient.
Jeff Davis

4

Das Besiegen von Poker-Bots kann zwei Formen annehmen: Sie können versuchen, sie zu identifizieren und aus dem System zu verbannen, oder Sie können sie einfach beim Poker schlagen. Sie beim Poker zu schlagen, ist die interessantere akademische Frage. :-)

Hier finden Sie einige Artikel zum Schlagen von Poker-Bots: http://www.cs.cmu.edu/~sganzfri/



2

Ein weiterer Gedanke zum Durcheinander mit dem Bildschirm, um das Scannen zu erschweren:

Machen Sie die Karte aus einer ganzen Reihe verschiedener Farben - in Bezug auf das menschliche Auge nah, aber nicht gleich. Dies würde es schwieriger machen, das zu lesende Zeug auszuwählen. Legen Sie auf der anderen Seite eine falsche Schrift in Farben auf die Karte, die das menschliche Auge nicht vom Hintergrund trennt.


2
Leider wäre dies für jeden konkurrierenden Programmierer ziemlich leicht zu besiegen, da sie Kratzfarbbereiche und nicht exakte Werte unter Umgehung dieser Lösung überprüfen würden.
Tom Gullen

Farbbereiche würden funktionieren, wenn sie festgelegt würden - aber was wäre, wenn Sie ständig Änderungen vornehmen würden? Es würde bedeuten, dass Ihr Schaber programmiert werden müsste, um das menschliche Sehen zu verstehen. Es wäre nicht unmöglich, aber es würde die Dinge viel schwieriger machen.
Loren Pechtel

Plausibel, aber es wird die gültige Benutzererfahrung mit der Software erheblich beeinträchtigen, was wahrscheinlich ein schlechtes Geschäft ist.
Tom Gullen

Sehr leicht zu besiegen. Ich habe bereits einen Poker-Bot geschrieben und erkenne Karten, indem ich die Bildähnlichkeit innerhalb eines Begrenzungsrahmens berechne. Selbst wenn keines der Pixel genau gleich ist (entweder weil die Kartenfarben oder die Bildschirmposition bei jedem Had geringfügig geändert werden), kann ich diese Ähnlichkeitsmessungen verwenden, um die "wahrscheinlichste" Karte zu identifizieren.
Benjamin

Und warum müssen die Farben Ihrer Meinung nach noch ähnlich bleiben? Wechseln Sie durch wild unterschiedliche Farben und den Hintergrund - ich stelle mir einen Effekt wie eine Welle vor, die ständig über die Karten fegt und die Farben ändert. Behalten Sie viel Kontrast bei und stellen Sie sicher, dass die resultierenden Farben nicht hässlich sind.
Loren Pechtel

2

Ist das Problem bei Bots die Tatsache, dass sie besser spielen als anständige menschliche Spieler, oder dass sie rund um die Uhr auf schlechte Spieler warten und dann versuchen können, sie zu melken?

Wäre es auch "legitim" oder "betrügerisch", wenn jemand einen Computer neben sich hat, während er Poker spielt und diesen anderen Computer um Rat fragt?

Ich bin mir nicht sicher, wie man behaupten kann, dass der Lösungsraum für Limit Poker "gelöst" ist, wenn die optimale Strategie für einen Spieler von dem beeinflusst wird, was über die Gegner bekannt ist. Wie kann ein Versuch, Spieler zu analysieren, behaupten, so perfekt zu sein, dass er nicht verbessert werden könnte?


Hier ist eine interessante Diskussion darüber, ob Poker lösbar ist: forumserver.twoplustwo.com/29/news-views-gossip/… Einige der dortigen Poster sind sehr seriös. Das Problem ist, dass ein Bot theoretisch unschlagbar funktioniert. Auch Software, die Sie beschreiben, um Ihnen zu helfen, ist eine Grauzone. Viele Websites erlauben Datenanalyse-Software wie PokerTracker / PokerOffice, ziehen jedoch die Grenze bei ICM-Rechnern und anderen mathematischen Entscheidungshilfen (diese sind beispielsweise bei Hyper äußerst nützlich) Turbo-Turnier-Endspielstrategie).
Tom Gullen

1

Wenn Sie Zugriff auf viele Übereinstimmungen haben, können Sie einen Data Mining-Ansatz wählen. Die Spielstärke einer KI sollte ziemlich konstant sein, während es für Menschen wahrscheinlich einfache Muster gibt - schwächer in den ersten Aufwärmrunden, und die Stärke nimmt nach langem Spielen ab. Auch die menschlichen Entscheidungszeiten steigen wahrscheinlich, wenn mehr Geld auf dem Spiel steht.

Wenn Sie Zugriff auf Mausbewegungen haben (oder zumindest auf Klickpositionen, was auch für Web-Apps gilt), sollte es relativ einfach sein, Bots zu erkennen, mit Ausnahme der anspruchsvollsten. Menschen bewegen die Maus nicht in einer exakten geraden Linie, sie haben Beschleunigungs- und Verlangsamungsperioden, statistisch beschreibbare Klickstellenverteilungen usw.


Viele Pokerseiten implementieren jetzt Tastaturkürzel für Multitabling, sodass Sie in einem Bot überhaupt keine Maus mehr benötigen. Ich denke auch nicht, dass die Entscheidung oft mit dem Geld auf dem Spiel steht, sie hängt hauptsächlich mit der Schwierigkeit der Entscheidung zusammen.
Tom Gullen

1

Schauen Sie sich das Ajax Control Toolkit NoBot an :

NoBot verwendet einige verschiedene Anti-Bot-Techniken:

* 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)

0

Eine 100% ige Lösung ist unmöglich. Was ich beabsichtige, ist eine Lösung, die Geld spart, indem die KI gegen sich selbst eingesetzt wird. Lassen Sie eine Instanz von PokerPirates KI auf der Serverseite laufen und in jedem Spiel als unsichtbarer Spieler spielen. Wenn ein Spieler zu viele identische Aktionen ausführt, führt er wahrscheinlich eine Instanz von PokerPirate aus. Dies ist eine Art Honeypot oder Falle, in die der Angreifer fallen kann. Der Angreifer kann sich gegen diesen Honigtopf verteidigen, indem er seinen Bot weniger erfolgreich macht. Auf diese Weise entsteht ein "Katz und Maus", bei dem der Angreifer immer etwas Geld stehlen und der Verteidiger immer etwas Geld sparen kann .


5
Schade, dass Sie Ihre andere fast identische Antwort gelöscht haben, da sie interessantes Feedback enthielt.
Paul Dixon

Dies setzt voraus, dass es nur einen Poker-Bot gibt und dass ein Mensch niemals die gleichen Dinge tun würde, die ein Bot tun würde.
gezogen

@drawnonward Ein Mensch wird sich nicht die ganze Zeit wie ein Bot verhalten , hier gibt es einen Fuzz-Faktor.
Turm

3
@TheRook 'Gamboling "AI's" sollte rein mathematisch sein und es gibt immer die "richtige Antwort".' Dies gilt nur für Spiele mit vollständigen Informationen, von denen Poker keine ist. Ein Spieler, der bei demselben Zustand immer die gleiche Aktion ausführt, wird vorhersehbar und ist daher leicht zu besiegen. Die besten Bots haben zufällige Elemente. Selbst die mathematischsten Spieler empfehlen ein unterschiedliches Verhalten, selbst in derselben Situation (normalerweise mit einer Wahrscheinlichkeit von einigen Prozent).
Davy8

1
@ The Rook Ich war nicht, dass dies eine akademische Umgebung war, aber ich habe eine Referenz ausgegraben (und so ziemlich jedes ernsthafte Pokerbuch, das Sie in die Hand nehmen, wird zustimmen, dass bei einem hohen Maß an Spielvorhersehbarkeit Unvorhersehbarkeit entscheidend ist) sciencenews.org/sn_arc98/ 7_18_98 / bob1.htm Einige Zitate:"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

Es gibt viel einfachere Wege. Ja. Viele der Vorschläge sind richtig und notwendig. Etwa 90% der Betrugsfälle werden jedoch auf zu einfache Weise aufgedeckt.

Wenn jemand einen Bot für ihn arbeiten lässt, möchte er nach einiger Zeit, dass ein zweiter Bot für ihn arbeitet. (eine andere Maschine oder was auch immer) aber: er wird das gleiche Passwort verwenden, da es schwer ist, sich an 2 zu erinnern (<--- sarkastisch)

Was bleibt: Überprüfen Sie die Konten mit demselben Spielverhalten und demselben Passwort-Hash.


Wie ist es zuverlässig? Ich denke, viele verschiedene Leute benutzen das gleiche Passwort. Lassen Sie mich nicht einmal mit einem Passwort wie dem Geburtsdatum oder einfach "azerty" oder "password" anfangen.
DuoSRX

6
Salz deine Hashes! > = (
WCWedin

1
@WCWedin guten Anruf, sollten alle Passwort-Hashes ein eindeutiges Salz verwenden.
Turm

@ DuoSRX wahr, nicht zuverlässig, aber ein guter Hinweis. Die gesamte Ergebnisliste geht an das Betrugsteam und überprüft die Konten im Hintergrund. @ WCWedin ja. nobrainer ;-)
cRichter
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.