天谕从一测到三测本人都有在追玩,本以为网易会做得很好,代码上不可能出现如此重大的BUG,但还是失望了。
本人在过去的几年都在做一些见不得人的程序工作,分析过很多程序和游戏客户端的结构。(当然违法事没干过纯个人爱好)
以此为前提本人可以说如果3.13的更新,没有人动交易代码,或者游戏数据库出现异常。那么此BUG必然存在很久了。
游戏交易必然会走以下几条路线。
1.游戏会实时遍历背包物品数量所有变动并把他们存放在数组或二叉树里。(此处为本地客户端数据)
2.当发生交易行为时,或者丢弃,卖店行为时,会从(本地客户端数据)数组中获取物品的ID,物品的数量,等数据。
并发送封包告知服务器,服务器再从服务端玩家数据中查询是否存在此物品,并且物品数据是否符合(有没有非法数据封包)
(服务器如果没有对此进行验证,或者在查询玩家数据库时出现异常都会有制物品BUG)
3.每放上去一样物品,物品ID,物品数量,都会先从本地获取数据,检测物品是否在背包存在,还有物品数据是否正常,(此处很多游戏没有检测)这是本地不检测也正常因为(非法程序可以修改)
4.每放上去一样物品,物品ID,物品数量,都会发送到服务端,由服务端检测是否正常,(如果服务端查询玩家数据库后检测不正常)那么返回失败结果并保存进交易LOG,【服务端如果没有异常处理,或者在玩家数据库查询时出了BUG 也会有制复物品BUG】
5.双方锁定物品后,还会发包通知服务端,服务端检测数据完整性后,开始进入交易预处理。
6.双方发包确认完成交易
【知识点】
本次的BUG,是玩家无意中发现的 可以写99个数物品就复制了99个物品。这里说明了,本地客户端没有做相对应的校验,服务端也没有进行校验,游戏运营了两个月了,如果是专找BUG的行业者们,或许早就通过(非法封包或者非法修改内存数据的方式获取此BUG 并利用很久了)
请参靠,XXF 的全屏秒杀 全屏吸怪,全屏技能 都在利用这些数据并没有实时校验,只是在怪死时才会发送封包给服务端,从而给人利用。
【所以请网易自查,是否是代码漏洞,还是数据库漏洞,这真的很重要!!代码漏洞那此BUG必存在很久】
最后还想说,一个程序几百万行代码,要从中找出漏洞,真的很难很难,但是交易代码是重中之重,请网易用点心,多用用歪门邪道的方式检验自己的程序经不经得起考验。