智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 17038|回复: 38

德扑圈之漏洞惊现

[复制链接]
Howard 发表于 2016-6-20 23:37:22 | 显示全部楼层 |阅读模式
周末打德扑圈,发生一灵异事件。
有一局,我跟两个人打上了。其中一个短筹码,翻前就全进了,我跟另一个还有剩余筹码。


打到转牌,我卡了,眼见对手时间已经用完,却轮不到我反应。

于是我祭出常用解卡大招(效果据说基本为0):切换到其他程序,再迅速切换回来。
这次似乎起到了作用,在河牌敌人check之后,等待我反应之时,切换了回来。这时候我看到那个死人的牌闪了一下,是QTo
闪完之后,又盖上了

我还以为我卡到自动check亮牌了,但是还有下注的机会。

我下注,活着的敌人call。

三人亮牌,短筹码果然是QTo。

这说明在当时那个时间点,全进者的底牌已经发送到了各玩家者客户端,即使还没有打到亮牌。

这肯定是个安全隐患,因为这种关键信息可以被破解。应该是亮牌时服务器再发送底牌信息。
hyrz 发表于 2016-6-21 00:06:43 | 显示全部楼层
刚才刻意开三个号尝试了这种情况,并没有看到牌。。。
 楼主| Howard 发表于 2016-6-21 03:12:05 | 显示全部楼层
出现这种情况肯定需要很多因素集中到一起才能触发,我猜测至少需要以下几点:

1. 网络延迟,且延迟时间恰到好处
2. 三人的特定位置关系
3. 很可能底牌的大小也有关

事实上网络延迟会造成各种信息错乱。比如说button的位置,如果你在一手牌的最末卡了,到下一手才恢复,很可能你会看到button并未移动,然而其实应该移动到了下家

关于这次底牌闪现,我相信是偶然事件,重现概率非常低。但是,这说明底牌信息在不该亮牌的时候就已经传递到了客户端,这是毫无疑问的。这种设计极其危险,容易遭到破解。一个有规模的软件不应该出现这种设计上的疏忽。
yoking 发表于 2016-6-21 07:32:18 | 显示全部楼层
按说不应该出这种大bug,之前不是听说经过了什么认证的吗?

不到最后摊牌,不能将其他人底牌发送本地客户端,这是起码设计思路。


似乎有两个bug:
是短筹码在多人底池早早全押(系统判断必会摊牌),发送了短筹码底牌;
Howard的操作触发了摊牌机制(有底牌信息的显示底牌,没有的则刚好不显示)。
July 发表于 2016-6-21 07:38:37 来自手机 | 显示全部楼层
会不会是幻觉,lol
tata2214 发表于 2016-6-21 08:49:20 | 显示全部楼层
我记得好像在哪儿看到过以前出现过这种情况,而且官方还给出了解释,我一会去找找看。
tata2214 发表于 2016-6-21 08:57:26 | 显示全部楼层
找了半天,原来我找到的问题,和楼主说的不太一样,有一些共同点。
tata2214 发表于 2016-6-21 08:58:04 | 显示全部楼层
转别人的发问“有时候,牌局进行中,突然可以看到对手的牌。怎么回事?偶尔。
  
是不是意味着:有可能,有ID可以在看到对方手牌情况下玩牌。”
tata2214 发表于 2016-6-21 08:58:47 | 显示全部楼层
转应该是官方人员的回答“这个是前几天更新的版本的一个bug, 你看到的是其他玩家在上一轮的手牌. 这个已经修正了.
  
这个是在很小的几率下出现的, 需要几个条件:  
第一,  你的网络不是特别好, 比如3G, 本应一起的消息报会有间隔;
第二, 需要经常在两个程序间切换, 比如切到微信, 再切回来;  
第三, 需要在上一局切出德扑圈到别的程序的时候, 刚好到比牌阶段的时候, 这一局比牌的亮牌的缓存还没有清除,ios把在后台的德扑圈杀了;
第四, 在两次心跳检测之间, 你再切回来, 因为服务器只是下发每个人当前时刻能看到牌,  本轮的牌局刷新没有去强制刷新别人的牌的缓存, 所以你看到别人亮牌了.
  
所以...还好这个已经改了 ”
pace 发表于 2016-6-21 11:53:06 | 显示全部楼层
July 发表于 2016-6-21 07:38
会不会是幻觉,lol

其他人有可能,老霍这么严谨的人估计是不太可能了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-4-18 10:25 , Processed in 0.046753 second(s), 7 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部