有一个名为PokerPirate的新开源扑克机器人。我对Web应用程序可以检测/阻止/击败扑克机器人的任何创造性方式感兴趣。 (这是一个纯粹的学术讨论,与PokerPirate写的一样精神。)
答案 0 :(得分:209)
答案 1 :(得分:9)
有三个独立的领域需要考虑。机器人必须弄清楚表的状态,做出决定,然后将决定发送回主机。
如果以某种可识别的形式通过电线发送表格或将其作为标准文本显示给用户,则更容易确定表格的状态。首先,使图像识别成为唯一的选择,然后尽可能地使其成为可能。以3D显示卡片并缓慢更改卡片的方向和位置。在卡片前面制作小闪烁或烟火,这样任何给定的屏幕截图都可能难以辨认,但确定它需要一段时间。
做出决定没有什么可做的。试图决定一个人是否作出决定就像一个几乎没有信息的图灵测试。
再次使用3D可能会使决策难以发送。难以直接发送数据包或以其他方式提交决策,而不是用鼠标单击按钮。在执行每个操作时稍微移动按钮,或者在等待决定时让它们在游戏区域周围缓慢浮动。禁用任何允许查找或操作按钮的辅助功能类型功能。
答案 2 :(得分:8)
因此,阻止这个机器人的明显方法包括:
答案 3 :(得分:5)
理想情况下,唯一有效的解决方案是创建一个蜜罐逻辑,通过提供有利于机器人最理想的行为反应的更有利逻辑条件的诱惑来吸引参与的机器人。一旦机器人参与了蜜罐,你必须不断地提供机器人条件,它更喜欢假设机器人没有设置超时。然后可以测量,记录和研究机器人。除了机器人之外,如果机器人没有通过TOR连接,你还可以将网络和会话数据隔离开来进行研究。
在这种情况下,适合区分机器人和人类的确定性考虑因素不那么严重,但是,在识别机器人行为时的确定性考虑变得更加严重。不幸的是,机器人的所有者可以对机器人进行更改,以防止此类识别,如果该所有者知道蜜罐状况或其逻辑考虑。
答案 4 :(得分:4)
击败扑克机器人可以采取两种形式:你可以尝试识别它们并禁止它们进入系统,或者你可以在扑克中击败它们。在扑克中击败他们是更有趣的学术问题。 : - )
请点击此处查看有关击败扑克机器人的一些文章:http://www.cs.cmu.edu/~sganzfri/
答案 5 :(得分:3)
This post也有一些关于如何阻挠他们的好建议。
答案 6 :(得分:2)
另一个想法是弄乱屏幕以使其难以扫描:
用一大堆不同的颜色制作卡片 - 人眼关注但不一样。这将使得挑选要阅读的内容变得更加困难。另一方面,将伪造的文字放在卡片上,使人眼不会与背景分开。
答案 7 :(得分:2)
机器人的问题是它们比正常的人类运动员打得更好,还是他们可以在24/7左右等待坏球员出现然后试图挤出它们?
此外,当他玩扑克时,有人坐在他旁边的电脑,咨询其他电脑寻求建议时,会“合法”或“作弊”吗?
我不确定当玩家的最佳策略会受到对手知道的影响时,人们如何能够宣称极限扑克的解决方案空间被“解决”。分析玩家的任何尝试如何声称是如此完美以至于无法改进?
答案 8 :(得分:1)
如果您可以访问许多匹配项,则可以采用数据挖掘方法。人工智能的游戏强度应该是相当一致的,而人类可能有简单的模式 - 在前几轮热身赛中表现较弱,并且在长时间比赛后力量会变差。此外,当有更多资金岌岌可危时,人类决策时间可能会上升。
如果您可以访问鼠标移动(或者至少点击即使对于Web应用程序也是如此),那么识别机器人应该相当简单,除了最复杂的机器人。人类不会在完全直线上移动鼠标,它们具有加速和减速时段,统计上可描述的点击位置分布等。
答案 9 :(得分:1)
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)
答案 10 :(得分:0)
100%的解决方案是不可能的,我的目标是通过使用人工智能来节省资金的解决方案。在服务器端运行PokerPirate's AI的实例,并在每个游戏中扮演隐形玩家的角色。如果任何玩家执行太多相同的动作,那么他们可能正在运行PokerPirate的一个实例。这是攻击者可能陷入的Honeypot或陷阱。攻击者可以通过使他们的机器人不那么成功来防御这个蜜罐。因此,这创造了“猫与老鼠”的出现,攻击者可以随时窃取一些钱,而后者可以随时存入一些钱。
答案 11 :(得分:-2)
有更简单的方法。 是。很多建议是正确的,也是必要的。 但是大约90%的欺诈行为都是以过于简单的方式被发现的。
如果有人让机器人为他工作, 经过一段时间后,他会想要第二台机器人为他工作。 (另一台机器或任何机器) 但是:他会使用相同的密码,因为它很难记住2(< --- sarcastic)
什么是左: 检查具有相同游戏行为和相同密码哈希的帐户。