击败扑克机器人

发布于 2024-08-30 00:49:00 字数 171 浏览 3 评论 0原文

有一个新的开源扑克机器人,名为 PokerPirate。我对网络应用程序可以检测/阻止/击败扑克机器人的任何创造性方式感兴趣。 (这纯粹是学术讨论,与 PokerPirate 的写作精神相同。)

There is a new Open Source poker bot called PokerPirate. I am interested in any creative ways in which a web application could detect/thwart/defeat a poker bot. (This is a purely academic discussion, in the same spirit that PokerPirate was written.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

笔落惊风雨 2024-09-06 00:49:00

从服务器端的角度击败机器人

  1. 许多在线扑克网站都使用弹出窗口
    触发的 验证码 输入
    可疑活动。

  2. 一些扑克网站会监控比赛情况
    时间和模式(即最坏情况
    场景是一名 24x7 的玩家
    连续16张表,有
    很小的机会这是真的
    人类。 (但是有些玩家

  3. 抛出它的故障。如果您怀疑
    玩家是一个机器人,改变他们的所有
    扑克牌位置偏离了一些
    屏幕上的像素,使它们
    不同的颜色/设计/图案
    1/100 手,看看它是否抛出
    他们。如果无法屏幕抓取
    所有决定都会超时
    这是相当有说服力的机器人
    证据。

  4. 时间告诉我们,如果电脑玩家
    以毫秒为单位响应选项
    一次没有停下来思考的时候
    对于重大决策,这可能是
    可疑

  5. 自我监控。扑克网站
    pokertableRatings.com 数据
    开采了很多大型矿场。它有
    受到了褒贬不一的欢迎,
    有些人喜欢透明度,其他人
    讨厌它。不过这样做的好处是,
    已经有实例
    可疑玩家在哪里
    统计数据
    (VPIP 百分比,
    PFR 百分比是大的几个
    可量化统计数据的数量
    可以记录)导致
    作弊结论

  6. 人工智能
    分类网络可以
    监控可量化的统计数据
    对流氓作弊或机器人进行分类
    玩家。

  7. 当在线扑克还相当流行时
    新实体,有传言并谈论,但证据有限
    一些扑克客户端软件
    可疑玩家的截图
    桌面以查看它们是否正在运行
    帮助他们的计划。然而(即使这是真的)运行两台计算机来独立执行这两项任务也可以解决这个问题。

  8. 重复之间共享信息
    多个站点之间的犯罪者
    将对行业有利,
    如果他们是可敬的并运行由有能力的负责人

  9. 有些机器人可能会相当
    设计简单,如果你能发现他们的
    比赛风格并观察他们的表现
    在相同的情况下(注意这一点
    只能用
    不成熟的机器人玩得很
    基本策略)你会发现
    他们相当快。

  10. 程序使用不一致
    特征将倾向于
    玩家是真实的。拿来当
    例如游戏中的许多扑克网站
    '轮到我时弃牌'
    按钮。如果你受到不好的对待
    手并正在等待另一只手
    玩家决定要做什么,很多
    的玩家会检查此按钮。
    机器人可以使用这些按钮。这
    不同的是,机器人的使用频率会达到极限,他们可能会一直使用它们,或者根本不使用它们。
    而玩家通常可能会按
    “自动折叠”,但有时他们会
    无论如何点击折叠,即使在最
    有利的条件。例如,
    真正的玩家通常会按下
    自动折叠,但这次没有。
    它对他们折叠起来,没有
    其他玩家正在行动,现在他们有
    被呈现最多的
    有利的条件可能。现在
    如果他们按下弃牌键,他们就会
    从一开始就非常倾向于按自动折叠。这是
    不一致/未优化/随机
    行为,符合作为一个
    人类。其他指标还包括时间显示这些功能何时被点击。重要的是要认识到这些都是指标,而不是确凿的证据。所有这些行为指标都可以轻松模拟。

从玩家的角度击败机器人

  1. 尝试使用 PokerTracker

  2. 尝试识别其中的模式
    它的演奏风格

  3. 尝试寻找关系
    赌注大小之间的比例
    底池/# 玩家和牌力

  4. 尝试计算其手牌范围。低风险机器人可能不会频繁地虚张声势,不会产生任何重大的战略问题,因此为其构建高度准确的手牌范围应该不会太棘手。

  5. 尝试查找其漏洞
    通过数据分析和尝试进行游戏
    和错误一旦泄漏/模式发生
    被发现,重复尝试
    利用它们并避免任何其他

当人类能够适应时,机器人可能会不太如此,并且人类由 倾斜以结果为导向的思维令人沮丧,机器人则不然。您可以利用这一点来发挥自己的优势。

因此,从本质上讲,如果机器人足够聪明,能够在决策过程中模拟真实的时间延迟,并创建合理且现实的游戏模式,那么您就无法阻止它。加入一些随机条件和简单的回聊(扑克玩家词典是 通常相当有限)并且你自己有一个很难被发现的人工智能玩家。

机器人可能会采取哪些措施来避免检测

避免检测的关键是从尽可能多的角度思考问题。您正试图在一个非常小且受限制的世界中模拟智能人类行为。您可以运行的大多数行为模拟都相当明显,但您的机器人越不一致和不可预测,被发现的可能性就越小。

  1. 创建现实的比赛时间表
    (即每周 3-5 次,每次 4 小时)
    这里的奇数周会议和
    全年休息)。

  2. 运行程序来做出决策
    独立的计算机,控制
    僵尸计算机以防任何网站
    屏幕截图。

  3. 随机行动时间(不要行动
    立即,每次等待 0.5–2 秒
    动作)

  4. 花时间做重大决定。如果一个
    决定是边缘性的,计算
    做出决定,然后等待一段时间
    模拟思考。

  5. 随机使用客户端软件功能。
    通过点击模拟上厕所时间
    所有的“让我退出按钮”
    桌子并有 5 分钟休息时间
    时不时地。

  6. 模拟聊天,扑克聊天常有
    非常简单的一行字,从来没有
    通常是讨论或辩论。说
    诸如“不幸”或“stfu”之类的东西
    适当的可检测时刻。或者
    甚至让编码员监控他的
    机器人并在期间进行聊天

  7. 确保鼠标移动
    实际的。如果表是
    平铺 不要做出决定
    左上角的表格然后立即制作
    在右下角的桌子上。大多数网站软件现在都提供键盘快捷键,这些快捷键可能比鼠标移动更适合使用。

  8. 做一些非常简单的人工智能事情
    分类器不会期待。为了
    例如,每年给他们打电话一次
    用一个简单的、不复杂的查询(“帮助我不能
    今天登录!”或“互联网瘫痪了!”)不太可能产生太大影响,但如果扑克公司的工作人员足够聪明,他们可能会认为这是一个可靠的指标。

  9. 零星的失败会话。倾斜能
    被模拟并且机器人可以玩
    情况很糟糕,而且每次都会损失一些钱
    进而。 每个人都会偏向某些方面
    点。

令人担忧的还在于,扑克网站并不特别关心机器人是否在其网络上运行,每个玩家都拥有大量的佣金,理论上从纯粹愤世嫉俗的商业角度来看,如果被发现,唯一的缺点将是负面新闻。

即使发现了公然的漏洞,(在 google 上搜索Cereus 网络丑闻或 绝对的扑克丑闻,这相当令人震惊)该业务似乎生存下来并保持健康,只是失去了受过良好教育和获胜的玩家(这样的玩家并不多)。这增加了网络中技能较差的玩家的比例,从而吸引了优秀的玩家回来。这是一个很好的老式陷阱 22。这是适当市场监管的一个极好的论据。

值得注意的是,对于每场比赛,都存在纳什均衡。在线扑克有一个时间表,就像它现在的运行方式一样,它必须转向更具社交性的东西(网络摄像头/网络电话),以便任何人在未来都可以信任它(如果人们信任它),因为机器人最终将在数学上接管优越,心理上免疫。扑克人工智能社区非常活跃,受到学术界和/或资本收益。

诸如限注扑克之类的简单版本的扑克已在小型搜索中非常接近解决空间。更复杂的游戏版本(无限制变体/底池限注奥马哈< /a> 等)变得可以被人工玩家击败。

结论

在行业转向更具社交性的在线游戏环境之前,复杂的机器人程序无法被检测到。这并不能解决问题,但肯定会让机器人更难在较低级别获胜。随着 PKR 的发布,我们已经看到了轻微的转变,3D 和更具互动性、每小时手数更少的其他多桌游戏网站版本对于玩家来说完成起来相当棘手。

这个问题还受到行业性质的影响,这是坚持使用大型、信誉良好的网站的另一个原因,这些网站的声誉已经越来越融入到他们的商业模式中。缺乏透明度和假装透明性对事业没有帮助。

目前,机器人开发人员面临的真正挑战是编写获胜算法,这并不像看起来那么简单。每个玩扑克的人都认为自己是优秀的、获胜的或收支平衡的玩家,但事实并非如此。这就是为什么人们继续玩游戏,即使他们输了钱,因为他们以为自己只是运气不好,或者他们的游戏风格被误解了。人类心理的这种傲慢和弱点,让输钱的玩家损失了很多钱,也是扑克依然能盈利的根本原因。

扑克是一种非常复杂的游戏,需要数年时间才能精通(古老的格言仍然正确,“十分钟学习,一生掌握”)。从长远来看,运气成分极其有限。

与任何其他职业一样,要想取得好成绩,你需要学习数百小时,并玩数千小时。您将了解经验不足的玩家无法理解的事情,发现经验不足的玩家无法发现的事情。学习会持续很长一段时间,也许比我们能活的时间还要长。这是一个复杂的游戏。

您是否经常在电视上看到高额现金游戏,并听到有人对着它大喊“这很简单!”从而证明业余爱好者确实不理解或认识到游戏的复杂性,并真正相信该级别的游戏最终仍然很简单。事实并非如此。那些高风险玩家(很多时候)会出现在电视上,因为他们真的真的真的很优秀。也可能正在玩一个复杂的元游戏,我们的爱好者无法识别它的存在。业余爱好者不会站在国际象棋大师面前大喊大叫,要求他们移动他们的马,但由于扑克的动力是不完美的信息,他们的心理使他们真正相信他们所说的。就像国际象棋一样,决策可能是复杂、敏感的,并且对整个游戏极其重要。随着游戏复杂性的增加,琐碎的决定不再那么琐碎,因为你的对手期望它们。

一旦你将你的机器人或你的游戏提升到更高的水平,你不可避免地会遇到更多更熟练的玩家。然后,考虑到牌桌图片范围平衡 ,复杂而智能的诈唬(即不仅仅是在弱点上诈唬,在范围上诈唬以及在图像上诈唬等),以及更详细的手牌范围分析。当你升级时,这确实是一个不同的游戏。

一旦编写出获胜的机器人,毫无疑问,编码员将拥有足够的技能、知识和常识,以不可检测的方式应用该机器人。这对他们来说是小事一桩。

所以你真的无能为力。如果您想在线玩游戏,请了解风险。切勿冒超出您承受能力的风险,并尝试保留准确的支出记录,这样您就不会错误地、不切实际地高估自己的能力,并最终造成损害。设置止损,如果你没有优势,或者不确定自己是否有优势,就离开牌桌!当然,如果每个人都这样做,没有人会赢,这就是游戏的掠夺性和剥削性,这就是竞争的来源,这就是它的乐趣所在。

Defeating a bot from the serverside perspective

  1. Many online poker sites use popup
    Captcha inputs that are triggered by
    suspicious activity.

  2. Some poker sites monitor playing
    times and patterns (i.e., worst case
    scenario is a player who plays 24x7
    and 16 tables continuously, there is
    a tiny tiny chance this is a real
    human. (However some players do have the ability to play very large hand volumes which to the inexperienced eye would appear to be a bot)

  3. Throw it glitches. If you suspect a
    player is a bot, change all their
    playing card positions off a few
    pixels on the screen, make them
    different colours/designs/patterns
    for 1/100 hands and see if it throws
    them. If it can't screen grab it
    will time-out on all its decisions
    and that's pretty conclusive bot
    evidence.

  4. Timing tells, if a computer player
    responds to options in milliseconds
    at a time without pause for thought
    on large decisions this could be
    suspicious

  5. Self monitoring. The poker website
    pokertableratings.com data
    mines a lot of large sites. It has
    been met with a mixed reception,
    some love the transparency, others
    hate it
    . The benefit is, however,
    that there have been instances
    where suspicious player
    statistics
    (VPIP percentages,
    PFR percentages are a few of a large
    number of quantifiable statistics
    that can be recorded) have lead to
    conclusions of cheating

  6. Artificially intelligent
    classification networks could
    monitor quantifiable statistics to
    classify rogue cheating or robotic
    players.

  7. Back when online poker was a fairly
    new entity, there was rumour and talk with limited evidence that
    some poker client software
    screen-shots of suspicious players
    desktops to see if they were running
    programs that assist them. However (even if this were true) running two computers to perform the two tasks independently would get around this.

  8. Sharing information between repeat
    offenders between multiple sites
    would be beneficial to the industry,
    if only they were honourable and run by competent responsible people

  9. Some bots would probably be quite
    simple by design, if you could discover their
    playing style and see how they act
    in identical situations (note this
    is only possible with
    unsophisticated bots playing very
    basic strategy) you could discover
    them reasonably quickly.

  10. Inconsistent use of program
    features would lean towards a
    player being genuine. Take for
    example many poker sites in game
    have a 'Fold when it's my turn'
    button. If you get dealt a bad
    hand and are waiting for another
    player to decide what to do, a lot
    of players will check this button.
    A bot may use these buttons. The
    difference is, a bot would be on the extremities of frequency of use, they would probably either use them all the time, or not at all.
    Wheras a player might usually press
    'autofold', but sometimes they will
    click fold anyway even in the most
    favorable conditions. For example,
    a genuine player usually presses
    auto fold but this time they don't.
    It's folded round to them with no
    other player acting, now they have
    been presented with the most
    favourable condition possible. Now
    if they press fold, they would have
    been heavily inclined to press autofold from the start. This is
    inconsistant/unoptimised/random
    behaviour, consistant with being a
    human. Timing tells on when these features are clicked are other indicators. It is important to recognise that these are all indicators and not conclusive proof. All of these behavioural indicators can be simulated easily.

Defeating a bot from a players perspective

  1. Try to log and collect as much data as possible using software like PokerTracker

  2. Attempt to identify patterns in
    its playing style

  3. Attempt to find relationships
    between bet size in proportion to
    pot/# players and hand strength

  4. Try to calculate its hand ranges. A low stakes bot probably wont be bluffing frequently enough to be of any significant strategic concern, so constructing highly accurate hand ranges for it shouldn't be too tricky.

  5. Attempt to find leaks in its
    game via data analysis and trial
    and error Once leaks/patterns have
    been found, attempt to repetitively
    exploit them and avoid any other
    situations.

Where a human is capable of adaptation, bots probably are less so, and where humans are weighted by the chains of tilt, results orientated thinking and frustrations, bots are not. You can use this to your advantage.

So in essence there is nothing you can do to stop it if the robot is clever enough to simulate real timing delays during decisions, as well as create reasonable and realistic playing patterns. Throw in some random conditions and simple back-chat (the poker players lexicon is usually fairly limited) and you have yourself a AI player that's going to be pretty hard to detect.

What bots might do to avoid detection

The key to avoid detection would be to think about the problem from as many angles as possible. You are attempting to simulate intelligent human behaviour in a very small and restricting world. Most of the behavioural simulations you can run are fairly obvious, but the more inconsistant and unpredictable your bot is, the less likely it is to be discovered.

  1. Create realistic playing schedules
    (i.e., 3–5 times a week, 4 hours per
    session with the odd week here and
    there off during the year).

  2. Run programs to make decisions on
    separate computer, controlling a
    zombie computer in case any sites
    screen capture.

  3. Randomise action timings (don't act
    immediately, wait 0.5–2 seconds per
    action)

  4. Time down on big decisions. If a
    decision is borderline, calculate
    the decision then wait a while to
    simulate thought.

  5. Random use of client software features.
    Simulate toilet breaks by clicking
    the "deal me out button" on all the
    tables and have a 5 minute break
    every now and then.

  6. Simulated chat, poker chat is often
    very simple one liners, never
    usually discussion or debate. Say
    things like "unlucky" or "stfu" at
    appropriate detectable moments. Or
    even have the coder monitoring his
    bot and engaging in chat during
    execution.

  7. Ensure mouse movements are
    realistic. If tables are
    tiled don't make a decision on
    top left table then instantly make
    on on bottom right table. Most sites software now offer keyboard shortcuts, these may be preferable to use as supposed to mousemovement.

  8. Do things that quite simply AI
    classifiers wont be expecting. For
    example, once a year phone them up
    with a simple non-complex query ("Help I can't
    log in today!" or "The Internet is down!") Unlikely to make much difference, but if the person working for the poker company is smart enough they might have recognised it as a realiable indicator.

  9. Sporadic losing sessions. Tilt can
    be simulated and the bot can play
    badly and lose some money every now
    and then. Everybody tilts at some
    point.

The concern is also that poker websites don't particularly care if bots are running on their networks, each player is worth a large amount in rake and theoretically from a purely cynical business point of view the only downside would be bad press if it was discovered.

Even when blatant exploits have been discovered, (search on google for Cereus network scandals or Absolute Poker Scandal, it's quite shocking) the business appears to survive and remain healthy, only losing well educated and winning players (of which there are not many). This increases the proportion of less skilled players to the network, which in turn attracts the good players back. It's a good ol' fashioned catch 22. An excellent argument for proper market regulation.

It is important to note, that for every game a nash equilibrium exists. Online poker has a timeline to it the way it runs now, it's going to have to move into something more social (webcam/voip) for anyone to trust it in the future (if people trust it) as bots will take over eventually as mathematically superior, and psychologically immune. The poker AI community is very active, fuelled by academia and/or capital benefit.

Simpler versions of poker such as limit poker have been very nearly solved in small search spaces. It's only a matter of time before more complex versions of the game (No Limit variations/Pot Limit Omaha etc) become beatable for artificial players.

Conclusion

Sophisticated bots just can't be detected until the industry shifts to a more social online gaming setting. This won't solve the problem, but will certainly make it harder for bots to win at the lower levels. We've already seen a slight shift with the release of PKR, 3D and a more interactive, less hands per hour version of the other sites where multitabling is quite tricky to accomplish for a player.

The problem also suffers from the nature of the industry, yet another reason to stick to the larger more reputable websites where reputation has become more and more integrated into their business model. Lack of transparency and feigned transarancy don't help the cause.

The real challenge currently for bot developers is to write a winning algorithm, this is not as trivial as it seems. Everyone who plays poker considers themselves good, winning or a break even player, which is simply not true. That is why people continue to play, even when they lose money as they are under the illusion they are simply unlucky, or their style of play is misunderstood. This arrogance and weakness in human psychology has cost losing players a lot of money and is the fundamental reason that poker can still be profitable.

Poker is a vastly complicated game that takes years to get good at (The old adage remains true, "Ten minutes to learn, a lifetime to master"). The luck element is extremely limited in the long term.

Like any other profession, to get good, you need to study for hundreds upon hundreds of hours, and play for many thousands. You will understand things that less experienced players wont understand, spot things the less experienced wont spot. The learning goes on for a very very long time, perhaps longer than we can ever live. It's a complicated game.

How often have you seen a high stakes cash game on the television and heard someone shout at it "That's an easy call!" thus prooving that amateurs really don't understand or recognise sophistication in play, and truly beleive the game at that level is still ultimately simple. It isn't. Those high stakes players (a lot of the time) are there on the television because they are really really really good. There is also probably a complicated meta game being played as well, which our amauer can't recognise the existance of. The amatuer wouldn't stand over a chess master and shout at them to move their knight, yet because of the dynamic of poker being imperfect information their psychology makes them truly beleive what they are saying. Like in chess, decisions can be intricate, sensitive and extremely important to the overall game. As the game increases in complexity, trivial decisions are not so trivial anymore, because your opponent expects them.

Once you move your bot or your game up the levels, you inevitably will come across a larger populous of more skilled players. Then, the complexity of your strategy is going to have to go up to the next level, taking into account table images, range balancing, sophisticated and intelligent bluffing (IE not just bluffing at weakness, bluffing at ranges and bluffing on image etc), with more detailed hand range analysis. It really is a different game as you move up.

Once a winning bot has been written, without doubt the coder will have enough skill, knowledge and common sense to apply the bot in an undetectable fashion. This is trivial for them.

So there really is nothing you can do. If you want to play online, understand the risks. Never risk more money than you can afford, and attempt to keep accurate records of spending so you don't have a misguided, unrealistic and ultimately damaging over estimation of your own ability. Have stop losses, and leave the table if you don't have an edge, or if you are unsure if you have an edge! Of course, if everyone did that no one would win, that's the predatory and exploitative nature of the game, that's where the competition comes from and that's what makes it fun.

绝情姑娘 2024-09-06 00:49:00

需要考虑三个不同的领域。机器人必须弄清楚表的状态,做出决定,并将决定发送回主机。

如果表以某种可识别的形式通过网络发送或作为标准文本显示给用户,则弄清楚表的状态会容易得多。首先,让图像识别成为唯一的选择,然后让它变得尽可能困难。以 3D 方式显示卡片并慢慢改变卡片的方向和位置。在卡片前面制作小闪烁或烟花动画,这样任何给定的屏幕截图都可能难以辨认,但甚至需要一段时间才能确定。

做出决定后无需做任何事情。试图确定一个决定是否是由人类做出的,就像几乎没有信息的图灵测试。

再次使用 3D 可能会使发回决定变得困难。使直接发送数据包或通过除鼠标单击按钮之外的任何方式提交决定变得困难。每个动作都会稍微移动按钮,或者让它们在游戏区域周围缓慢浮动,同时等待决定。禁用任何允许找到或操作按钮的辅助功能类型功能。

There are three separate areas to consider. The bot has to figure out the state of the table, make a decision, and send the decision back to the host.

Figuring out the state of the table is much easier if it is sent across the wire in some recognizable form or displayed to the user as standard text. First, make image recognition the only option, then make it as hard as possible. Display the cards in 3D and slowly change the orientation and position of the cards. Animate little flickers or fireworks in front of the cards so any given screen shot may be illegible but it takes a while even to determine that.

There is nothing to be done with making the decision. Trying to decide if a decision was made by a human or not is like a turing test with almost no information.

Sending the decision back can be made difficult by using 3D again. Make it hard to send packets directly or otherwise submit a decision by any means other than clicking a button with the mouse. Move the buttons slightly with every action or have them float slowly around the play area while awaiting a decision. Disable any accessibility type features that allow buttons to be found or manipulated.

荭秂 2024-09-06 00:49:00

PokerPirate 与几乎所有曾经编写的扑克机器人一样,通过屏幕抓取和模拟 Windows 扑克应用程序中的鼠标点击来工作。因此,系统的关键是它能够识别游戏中的对象并在窗口中执行操作。尽管它在扑克方面可能很聪明,但它在这些基本操作方面可能仍然存在问题。

因此,阻止该机器人的明显方法包括:

  1. 在游戏前或当其他因素表明玩家可能是机器人时实施验证码。
  2. 让桌面图形更加复杂,或者改变整个游戏的主题。
  3. 检测异常快速和/或机器人鼠标移动和点击(人类永远不会以数学上完美的直线移动鼠标)。

PokerPirate, like nearly every poker bot ever written, works by screen scraping and simulating mouse clicks in a Windows poker application. Therefore, the lynch-pin to the system is its ability recognize objects in the game and make actions in the window. As smart as it may be at poker, it likely still has trouble with these basic operations.

Therefore, Obvious ways to thwart this bot would include:

  1. Implement a CAPTCHA, either before the game, or when other factors suggest a player may be a bot.
  2. Make the table graphics more complicated, or change theme throughout the game.
  3. Detect unusually fast and/or robotic mouse movements and clicks (a human will never move a mouse in a mathematically perfect line).
忘东忘西忘不掉你 2024-09-06 00:49:00

理想情况下,唯一有效的解决方案是创建一个蜜罐逻辑,通过提供有利于机器人最理想的行为响应的更有利的逻辑条件来吸引参与的机器人。一旦机器人参与蜜罐,您必须不断地向机器人提供它更喜欢的条件,假设机器人没有设置超时。然后可以测量、记录和研究机器人。除了机器人之外,如果机器人不通过 TOR 连接,您还可以隔离网络和会话数据以供研究。

在这种情况下,适合区分机器人与人类的确定性考虑不太严格,但是,识别机器人行为时的确定性考虑变得更加严格。不幸的是,如果机器人的所有者知道蜜罐状况或其逻辑考虑,则该所有者可以对机器人进行更改以防止此类识别。

Ideally the only valid solution is to create a honeypot logic that lures an engaged bot by providing the temptation of a more favorable logic condition that favors the bot's most ideal behavioral responses. Once the bot is engaged in the honeypot you must continually feed the bot conditions that it prefers presuming the bot does not have a set timeout. Then the bot can be measured, logged, and studied. In addition to the bot you would also have the network and session data isolated for study provided the bot is not connecting via TOR.

In this situation deterministic considerations suited to differentiating a bot from a human are less severe, however, deterministic consideration upon identification of the bot's behavior become more severe. Unfortunately, the bot's owner can make changes to the bot to prevent such identification if that owner is aware of the honeypot condition, or the logical consideration thereof.

-小熊_ 2024-09-06 00:49:00

击败扑克机器人可以采取两种形式:您可以尝试识别它们并禁止它们进入系统,或者您可以在扑克中击败它们。在扑克中击败他们是更有趣的学术问题。 :-)

请参阅此处有关击败扑克机器人的一些论文:http://www.cs.cmu .edu/~sganzfri/

Defeating poker bots can take two forms: you can try and identify them and ban them from the system, or you can just beat them at poker. Beating them at poker is the more interesting academic question. :-)

See here for some papers about beating poker bots: http://www.cs.cmu.edu/~sganzfri/

吃素的狼 2024-09-06 00:49:00

看看这篇文章

这篇文章也有一些关于如何阻止它们的好技巧。

Look at this post

This post also has some good tips on how to thwart them.

我不吻晚风 2024-09-06 00:49:00

另一个关于弄乱屏幕使其难以扫描的想法是:

用大量不同的颜色制作卡片——用人眼的术语来说很接近,但又不相同。这将使挑选要阅读的内容变得更加困难。另一方面,在卡片上以人眼无法将其与背景分开的颜色写上假文字。

Another thought on messing with the screen to make it hard to scan:

Make the card out of a whole slew of different colors--close in human eye terms but not the same. This would make it harder to pick out the stuff to read. On the flip side, put fake writing on the card in colors that the human eye won't separate from the background.

荒路情人 2024-09-06 00:49:00

机器人的问题是他们比优秀的人类玩家玩得更好,还是他们可以 24/7 等待糟糕的玩家出现,然后试图榨取他们的钱?

另外,当某人玩扑克时将一台电脑放在他旁边,向另一台电脑寻求建议,这是“合法”还是“作弊”?

我不确定当玩家的最佳策略会受到对对手的了解的影响时,如何才能声称限注扑克的解决方案空间已“解决”。任何分析球员的尝试怎么能声称自己如此完美以至于无法改进呢?

Is the problem with bots the fact that they play better than decent human players, or that they can wait around 24/7 for bad players to appear and then try to milk them?

Also, would it be "legitimate" or "cheating" for someone to have a computer sitting next to him while he played poker, consulting that other computer for advice?

I'm not sure how one can claim the solution space for limit poker is "solved" when the optimal strategy for a player will be influenced by what is known about the opponents. How can any attempt at analyzing players claim to be so perfect that it could not be improved?

笑叹一世浮沉 2024-09-06 00:49:00

如果您可以访问大量匹配项,则可以采用数据挖掘方法。人工智能的比赛强度应该是相当一致的,而人类可能有简单的模式——在前几轮热身赛中较弱,并且在比赛很长时间后强度会下降。此外,当涉及的资金更多时,人类的决策时间可能会延长。

如果您可以访问鼠标移动(或者至少单击位置,即使对于网络应用程序也是如此),那么识别机器人应该相当简单,除了最复杂的机器人之外。人类不会沿精确的直线移动鼠标,它们有加速和减速周期、可统计描述的点击位置分布等。

If you have access to a lot of matches, you can take a data mining approach. The playing strength of an AI should be pretty consistent, while there are probably simple patterns for humans - weaker in the first few warm-up rounds, and strength deteriorates after playing for a long time. Also, human decision times probably go up when there is more money at stake.

If you have access to mouse moves (or at least click locations which is true even for web apps), it should be fairly simple to recognize bots, except for the most sophisticated ones. Humans don't move the mouse in an exact straight line, they have speedup and slowdown periods, statistically describable click location distributions, etc.

卖梦商人 2024-09-06 00:49:00

看一下 Ajax 控制工具包 NoBot

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)

Have a look at Ajax Control Toolkit NoBot:

NoBot employs a few different anti-bot techniques:

* 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)
胡渣熟男 2024-09-06 00:49:00

100% 的解决方案是不可能的,我的目的是通过使用人工智能来对抗它自己,从而节省资金。有一个 PokerPirate 的 AI 实例在服务器端运行并作为隐形角色进行游戏每场比赛的球员。如果任何玩家执行太多相同的操作,那么他们可能正在运行 PokerPirate 的实例。这是攻击者可能落入的一种蜜罐或陷阱。攻击者可以通过降低机器人的成功率来防御此蜜罐。这样就形成了“猫和老鼠”的局面,攻击者总能偷走一些钱,而防御者总能节省一些钱。

A 100% solution is impossible, what I am purposing is a solution that will save money by using the AI against its self. Have an instance of PokerPirate's AI running on the server side and playing as an invisible player in every game. If any player performs too many identical actions then they are probably running an instance of PokerPirate. This is a kind of Honeypot or trap that the attacker can fall into. The attacker can defend against this honeypot by making their bot less successful. Thus this is creating a came of "Cat and Mouse" in which the attacker can always steal some money and the defender can always save some money.

油焖大侠 2024-09-06 00:49:00

还有更简单的方法。
是的。很多建议都是对的,也是需要的。
但大约 90% 的欺诈行为都是以过于简单的方式被发现的。

如果有人让机器人为他工作
一段时间后,他会希望有第二个机器人为他工作。 (另一台机器或其他机器)
但是:他将使用相同的密码,因为很难记住 2(<--- 讽刺)

剩下的内容:
检查具有相同游戏行为和相同密码哈希的帐户。

There are much easier ways.
yes. a lot of the suggestions are right, and needed.
but about 90% of the frauds are detected in too simple manner.

if someone let a bot work for him,
he will, after some time, want that a second bot is working for him. (another machine or whatsoever)
but: he will use the same password, as it is hard to remember 2 (<--- sarcastic)

whats left:
check the accounts with same game behavior and same password hash.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文