質問

と呼ばれる新しいオープンソース ポーカー ボットがあります。 ポーカーパイレーツ. 。私は、Web アプリケーションがポーカー ボットを検出/阻止/敗北できる独創的な方法に興味があります。(これは純粋に学術的な議論であり、PokerPirate が書かれたのと同じ精神に基づいています。)

役に立ちましたか?

解決

サーバーサイドの観点からボットを倒す

  1. 多くのオンライン ポーカー サイトはポップアップを使用していますキャプチャ によってトリガーされる入力 不審なアクティビティ。

  2. 一部のポーカー サイトでは、プレイを監視しています 時間とパターン(つまり、最悪のケース シナリオは24x7でプレイするプレイヤーです そして、16のテーブルが連続して、あります これが本物である小さな小さなチャンス 人間。(ただし一部のプレイヤーは 非常に大きなハンドボリュームをプレイする能力を持っています 経験の浅い目にはボットのように見えるでしょう)

  3. グリッチを投げます。が疑われる場合 プレイヤーはボットであり、すべての トランプのポジションはいくつかオフ 画面上のピクセル、それらを作る さまざまな色/デザイン/パターン 1/100の手で投げるかどうか見てみましょう それら。画面をつかむことができない場合 すべての決定でタイムアウトします そして、それはかなり決定的なボットです 証拠。

  4. タイミングは、コンピュータプレーヤーが教えてくれます ミリ秒単位でオプションに応答します 思考の休止もなく 大規模な決定では、これは 怪しい

  5. 自己監視。ポーカーのウェブサイトポーカーテーブルレーティング.com データ 多くの大規模なサイトを採掘します。それは持っています 賛否両論の反応が寄せられ、 透明感を愛する人もいますが、 余人 嫌いなの. 。ただし、利点は次のとおりです。 それ 実例がありました 不審なプレイヤーがいる場所 統計学 (VPIP パーセンテージ、 PFR の割合は、いくつかの大きな 定量化可能な統計の数 記録できるもの)は、 不正行為の結論

  6. 人工知能分類ネットワーク できました 定量化可能な統計を監視して、 不正なチート行為やロボットの分類 選手。

  7. オンラインポーカーがかなりだった頃 新しい実体、噂があった そして話す という限られた証拠で、 いくつかの火かき棒のクライアントソフトウェア 不審なプレイヤーのスクリーンショット デスクトップが実行されていたかどうかを確認する 彼らを支援するプログラム。ただし、(これが本当だったとしても) 2 台のコンピュータを実行して 2 つのタスクを個別に実行することで、この問題を回避できます。

  8. 繰り返し間での情報の共有 複数のサイト間の違反者 業界にとって有益であり、 彼らが名誉ある人だったら そして経営するのは 有能な責任者

  9. 一部のボットはおそらくかなりのものになるでしょう 設計上シンプル、もしあなたが彼らの発見を発見できたなら、 プレイスタイルと彼らがどのように行動するかを見てください 同じ状況で (これに注意してください は、 素朴なボットが遊んでいる 基本戦略)を発見できます それらはかなり迅速に。

  10. プログラムの使用に一貫性がない 機能は、 プレイヤーは本物です。取る ゲーム内の多くのポーカーサイトの例 「自分の番になったらフォールドする」 ボタン。悪い配られたら 手と別のものを待っています 何をすべきかを決めるプレイヤー、たくさん のプレイヤーがこのボタンをチェックします。ボットはこれらのボタンを使用する可能性があります。ザ 違いは、ボットは使用頻度の極端にあり、おそらく常に使用するか、まったく使用しないかのどちらかです。プレーヤーが通常押す可能性のある場所 'autofold' ですが、時には クリック 折りたたむ とにかく ほとんど 有利な条件。例えば 本物のプレーヤーは通常、 自動折り畳みですが、今回は折りたたみません。それは彼らに丸く折りたたまれています。 他のプレイヤーが演技をすると、 最も多く提示されている 可能な好ましい条件。今 折り畳みを押すと、 最初から自動折り畳みを押す傾向が強い。これは 一貫性がない/最適化されていない/ランダム 振る舞いは、 人間。これらの機能がいつクリックされたかを示すタイミングも他の指標です。これらはすべて指標であり、決定的な証拠ではないことを認識することが重要です。これらの行動指標はすべて簡単にシミュレートできます。

プレイヤーの視点からボットを倒す

  1. 次のようなソフトウェアを使用して、できるだけ多くのデータをログに記録し、収集するようにしてください。 ポーカートラッカー

  2. パターンの識別を試みます その演奏スタイル

  3. リレーションシップの検索を試みる ベットサイズ間 pot/# プレイヤーとハンドの強さ

  4. 計算してみてください 手の範囲. 。ロー ステークス ボットはおそらく、重大な戦略上の懸念になるほど頻繁にブラフを行うことはないため、高精度のハンド レンジを構築するのはそれほど難しいことではありません。

  5. 探してみてください 漏れ その データ分析とトライアルによるゲーム とエラー リーク/パターンが 見つかり、繰り返し試みる それらを悪用し、他のものを避けてください 状況。

人間ができるところは 適応, 、ボットはおそらくそうではなく、人間は 傾ける, 結果志向の思考 そして 欲求不満, 、ボットはそうではありません。これを有効に活用できます。

したがって、ロボットが意思決定中の実際のタイミング遅延をシミュレートし、合理的で現実的なプレイ パターンを作成できるほど賢い場合、本質的には、それを止めるためにできることは何もありません。いくつかのランダムな条件と単純なバックチャットを投入します (ポーカー プレーヤーの用語集は次のとおりです)。 通常はかなり制限されています) そして、あなたは、検出するのが非常に難しい AI プレーヤーを持っています。

検出を避けるためにボットが行う可能性のあること

検出を回避するための鍵は、問題をできるだけ多くの角度から考えることです。あなたは、非常に小さく制限のある世界で、知的な人間の行動をシミュレートしようとしています。実行できる動作シミュレーションのほとんどは非常に明白ですが、ボットが一貫性がなく予測不可能であればあるほど、発見される可能性は低くなります。

  1. 現実的なプレイスケジュールを作成 (つまり、週に3〜5回、1回あたり4時間 奇数週のセッションはこちら 年の間そこに)。

  2. 決定を下すためのプログラムの実行 別のコンピュータ、制御[さいのこんと、せいん ゾンビコンピュータの場合、任意のサイト 画面キャプチャ。

  3. アクションのタイミングをランダム化する (行動しない すぐに、0.5〜2秒待ちます アクション)

  4. 大きな決断をする際は時間を短縮しましょう。もし 決定はボーダーライン、計算 その後、しばらく待ってから決定します 思考をシミュレートします。

  5. クライアント ソフトウェア機能のランダムな使用。トイレ休憩をシミュレートするには、 すべての「Deal Me Out Button」は、 テーブルと5分間の休憩があります 時折。

  6. 模擬チャット、ポーカーチャットはしばしば 非常にシンプルなワンライナー、決して 通常、ディスカッションまたはディベート。言う 「不運」とか「静かに」とか。 適切な検出可能な瞬間。又は コーダーに監視してもらうことさえできます。 ボットとチャットへの参加中 実行。

  7. マウスの動きが 現実的。テーブルがタイル張りの 決定を下さないでください 左上のテーブルは、すぐに作る 右下のテーブルでオン。現在、ほとんどのサイト ソフトウェアではキーボード ショートカットが提供されており、これらはマウスの動きを想定して使用する方が望ましい場合があります。

  8. 非常に簡単にAIが行うこと 分類子は期待していません。対して 例えば、年に一度、電話をかけてみる 単純で複雑でないクエリ ("Help I can't 「今すぐログインしてください!」または「インターネットがダウンしています!」 大きな違いを生む可能性は低いですが、ポーカー会社で働いている人が十分に賢い場合、彼らはそれを現実的な指標として認識したかもしれません。

  9. 散発的な負けセッション。チルト缶 シミュレートされ、ボットは再生できます ひどく、今お金を失います それから。 みんな 一部傾く 点。

また、懸念されるのは、ポーカー ウェブサイトがネットワーク上でボットが実行されているかどうかを特に気にしていないことです。各プレーヤーには多額のレーキの価値があり、純粋に皮肉なビジネスの観点から理論的には、唯一の欠点は、それが発見された場合に悪い評判になることです。 。

露骨なエクスプロイトが発見された場合でも、(Google で検索してください) セレウスネットワーク スキャンダルとか 絶対ポーカースキャンダル, 、これは非常に衝撃的です)ビジネスは生き残り、健全さを維持しているように見えますが、高学歴で勝ったプレーヤー(その数は多くありません)を失うだけです。これにより、ネットワークに対するスキルの低いプレーヤーの割合が増加し、優れたプレーヤーが再び引き寄せられます。古き良きキャッチ22です。適切な市場規制を求める素晴らしい議論です。

すべてのゲームでナッシュが発生することに注意することが重要です。 均衡が存在する. 。オンライン ポーカーには現在行われているようにタイムラインがありますが、数学的に最終的にはボットが引き継ぐため、将来的には誰でも信頼できるように (ウェブカメラ/voip)、よりソーシャルなもの (ウェブカメラ/voip) に移行する必要があるでしょう。優れており、心理的に免疫があります。ポーカー AI コミュニティは 非常に活発な, 、学術界および/または資本利益によって支えられています。

リミット ポーカーなどのより単純なバージョンのポーカーが存在します。 ほぼ解決に近い 狭い検索スペースで。ゲームのより複雑なバージョン (制限なしのバリエーション/ポット リミット オマハ など)人工プレイヤーに勝てるようになります。

結論

業界がよりソーシャルなオンライン ゲーム環境に移行するまで、洗練されたボットを検出することはできません。これで問題が解決するわけではありませんが、ボットが低レベルで勝つのは確実に難しくなります。のリリースにより、すでにわずかな変化が見られます PKR, 3D とよりインタラクティブな, 、プレイヤーにとってマルチテーブル化を達成するのが非常に難しい他のサイトの、時間当たりの手数が少ないバージョンです。

この問題は業界の性質にも影響を受けており、評判がビジネス モデルにますます組み込まれている、より大規模で評判の高い Web サイトに固執するもう 1 つの理由があります。透明性の欠如と、 偽りの透明性 原因を解決しないでください。

現在、ボット開発者にとっての本当の課題は、優れたアルゴリズムを作成することですが、これは思っているほど簡単ではありません。ポーカーをプレイする人は皆、自分が上手い、勝てる、または損益分岐点のプレイヤーであると考えていますが、それはまったく真実ではありません。だからこそ、単に運が悪いだけだと錯覚したり、自分のプレイスタイルが誤解されたりして、たとえお金を失ったとしても、人々はプレイを続けるのです。人間の心理におけるこの傲慢さと弱さは、負けたプレイヤーに多大な損失を与えており、これがポーカーが依然として利益を上げ続ける根本的な理由です。

ポーカーは非常に複雑なゲームで、上達するには何年もかかります (「学ぶのに 10 分、マスターするには一生かかる」という古い格言は今も真実です)。長期的に見ると、運の要素は非常に限られています。

他の職業と同様、上達するには何百時間も勉強し、何千時間もプレーする必要があります。経験の浅いプレイヤーが理解できないことを理解し、経験の浅いプレイヤーが気づかないことを見つけることができます。学習は非常に長い間、おそらく私たちが生きられるよりも長く続きます。複雑なゲームだ。

テレビでハイステークスのキャッシュゲームを見て、誰かが「それは簡単な判断だ!」と叫ぶのを聞いたことがあるでしょうか。そうではありません。そうした一か八かのプレイヤーが(多くの場合)テレビに登場するのは、彼らが本当にそうであるからです。 本当に 本当に 良い。おそらく、私たちのアマウアーがその存在を認識できない、複雑なメタ ゲームもプレイされていると思われます。アマチュアはチェスのマスターの上に立って、ナイトを動かせと叫ぶことはしませんが、ポーカーの力学は不完全な情報であるため、彼らの心理は彼らの言うことを真に信じさせます。チェスと同様に、決定は複雑で繊細であり、ゲーム全体にとって非常に重要です。ゲームが複雑になるにつれて、対戦相手がそれを期待しているため、些細な決定はもはやそれほど些細なものではなくなります。

ボットやゲームのレベルを上げると、必然的に、よりスキルの高いプレイヤーの集団に遭遇することになります。その場合、戦略の複雑さは次のレベルに上がる必要があります。 テーブルの画像, 範囲のバランス調整, 、洗練されたインテリジェントなブラフ (弱いときのブラフ、レンジでのブラフ、イメージでのブラフなど)、より詳細なハンド レンジ分析。レベルを上げると本当に違うゲームになります。

優れたボットが作成されたら、プログラマーは間違いなく、検出されない方法でボットを適用するのに十分なスキル、知識、常識を備えていることになります。彼らにとってこれは些細なことだ。

したがって、実際にできることは何もありません。オンラインでプレイしたい場合は、リスクを理解してください。決して自分の許容できる以上のお金を危険にさらさないようにし、自分の能力を誤った、非現実的な、そして最終的に損害を与える過大評価に陥らないように、支出を正確に記録するように努めてください。ストップロスを用意し、エッジがない場合、またはエッジがあるかどうかわからない場合はテーブルから離れてください。もちろん、全員がそれをやったら誰も勝てなくなりますが、それがこのゲームの略奪的で搾取的な性質であり、そこから競争が生まれ、それがゲームの面白さなのです。

他のヒント

考慮すべき3つの別々の領域があります。ボットは、テーブルの状態を把握し、決定を下し、決定をホストに送り返す必要があります。

テーブルの状態を把握することは、認識可能な形式でワイヤー全体に送信される場合、または標準テキストとしてユーザーに表示される場合、はるかに簡単です。まず、画像認識を唯一のオプションにしてから、できるだけ難しくします。カードを3Dで表示し、カードの向きと位置をゆっくりと変更します。カードの前で小さなちらつきや花火をアニメーション化するので、特定のスクリーンショットは判読できない可能性がありますが、それを決定するのに時間がかかります。

決定を下すことに何もすべきことはありません。人間によって決定が下されたかどうかを決定しようとすることは、ほとんど情報のないチューリングテストのようなものです。

3Dを再度使用することにより、決定を返送することが困難になる可能性があります。マウスでボタンをクリックする以外の手段でパケットを直接送信するか、その他の方法で決定を送信することを難しくしてください。すべてのアクションでボタンをわずかに移動するか、決定を待つ間、プレイエリアの周りにゆっくりと浮かせます。ボタンを見つけたり操作できるようにするアクセシビリティタイプの機能を無効にします。

PokerPirateは、これまでに書かれたほぼすべてのポーカーボットと同様に、Windowsポーカーアプリケーションでマウスクリックをスクリーニングしてシミュレートすることで機能します。したがって、システムへのリンチピンは、その能力がゲーム内のオブジェクトを認識し、ウィンドウでアクションを作成することです。ポーカーにある可能性があるように、これらの基本的な操作にはまだ問題がある可能性があります。

したがって、このボットを阻止する明白な方法には次のものが含まれます。

  1. ゲームの前に、または他の要因がプレーヤーがボットになる可能性がある場合のキャプチャを実装します。
  2. テーブルグラフィックをより複雑にするか、ゲーム全体でテーマを変更します。
  3. 異常に高速および/またはロボットマウスの動きとクリックを検出します(人間は数学的に完全なラインでマウスを動かさないでしょう)。

理想的には、唯一の有効な解決策は、ボットの最も理想的な行動反応を好むより好ましい論理条件の誘惑を提供することにより、魅力的なボットを誘うハニーポットロジックを作成することです。ボットがハニーポットに従事したら、ボットが設定されていないと推測することを好むボット条件に継続的に供給する必要があります。その後、ボットを測定し、ログに記録し、研究することができます。ボットに加えて、ボットがTORを介して接続されていない場合、調査用のネットワークとセッションのデータも分離されます。

この状況では、ボットを人間と区別するのに適した決定論的な考慮事項はそれほど深刻ではありませんが、ボットの行動を特定したときの決定論的な考慮事項はより深刻になります。残念ながら、ボットの所有者は、その所有者がハニーポットの状態またはその論理的な考慮事項を認識している場合、そのような識別を防ぐためにボットに変更を加えることができます。

ポーカーボットを倒すことは、2つのフォームをとることができます。それらを識別してシステムから禁止するか、ポーカーで倒すことができます。ポーカーでそれらを打ち負かすことは、より興味深い学術的な質問です。 :-)

ポーカーボットの鼓動に関するいくつかの論文については、こちらをご覧ください。 http://www.cs.cmu.edu/~sganzfri/

この投稿を見てください

この郵便受け また、それらを阻止する方法に関するいくつかの良いヒントもあります。

画面をいじり、スキャンを難しくすることについての別の考え:

さまざまな色のすべてのさまざまな色からカードを作ります - 人間の目の用語では閉じますが、同じではありません。これにより、読むものを選ぶのが難しくなります。裏側では、人間の目が背景から分離しない色のカードに偽の文章を置きます。

ボットの問題は、彼らがまともな人間のプレイヤーよりも優れているという事実、または彼らが悪いプレイヤーが現れてから彼らを搾乳しようとするのを24時間年中無休で待つことができるという事実ですか?

また、誰かがポーカーをプレイしている間に誰かが彼の隣に座っていることは「合法的」または「不正行為」であり、他のコンピューターにアドバイスを求めて相談しますか?

プレーヤーの最適な戦略が対戦相手について知られていることに影響される場合、Limit Pokerのソリューションスペースが「解決される」方法がわかりません。プレイヤーを分析しようとする試みは、それを改善できないほど完璧であると主張することができますか?

多くの試合にアクセスできる場合は、データマイニングアプローチをとることができます。 AIのプレイ強度はかなり一貫しているはずですが、おそらく人間には単純なパターンがあります - 最初の数回のウォームアップラウンドでは弱く、長い間プレーした後に筋力が悪化します。また、より多くのお金がかかっていると、人間の決定時間はおそらく上昇します。

マウスの動きにアクセスできる場合(または少なくともWebアプリにも当てはまる場所をクリックすると)、最も洗練されたものを除き、ボットを認識するのはかなり簡単なはずです。人間はマウスを正確な直線で動かせず、スピードアップおよび減速期間、統計的に説明可能なクリック位置分布などがあります。

見て ajaxコントロールツールキットノボット:

Nobotはいくつかの異なるアンチボット技術を採用しています:

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

100%の解決策は不可能です。私が目的としているのは、AIを自己に対して使用することでお金を節約する解決策です。のインスタンスがあります PokerpirateのAI サーバー側で実行し、すべてのゲームで目に見えないプレーヤーとしてプレイします。いずれかのプレイヤーがあまりにも多くの同一のアクションを実行した場合、おそらくポーカーパイレートのインスタンスを実行しています。これは一種です ハニーポット または、攻撃者が陥ることができるトラップ。攻撃者は、ボットの成功を減らすことで、このハニーポットに対して守ることができます。したがって、これは攻撃者がいつでも盗むことができる「猫とマウス」の登場を作成しています いくつかの お金とディフェンダーはいつでも保存できます いくつかの お金。

はるかに簡単な方法があります。はい。多くの提案が正しく、必要です。しかし、詐欺の約90%はあまりにも単純な方法で検出されます。

誰かがボットを彼のために働かせたら、彼はしばらくして、2番目のボットが彼のために働いていることを望みます。 (別のマシンまたは何でも)しかし:彼は同じパスワードを使用します。

何が残っているのか:同じゲーム動作と同じパスワードハッシュでアカウントを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top