早晨还在睡梦中,就听空空找徐超,有玩家举报有人刷钱,当时就是心中一凉,不过料想着急也是无用,于是该干什么还干什么,继续睡觉。
中午起来,徐超确认了刷钱BUG的存在,行为日志中记录某个角色流出数亿游戏币,没有找到什么端倪。我再查阅了行为日志,异常日志,登录日志,确认了不是通过回档,任务执行故障造成的刷钱,唯一能够入手的地方只有监视玩家的指令,然而为了赶进度,服务器端的录像功能迟迟未做,这个时候只有抓瞎。
在屋子里来回走了三圈,下定决心,先补功能,再查问题。打电话找到王呈,叶振华,下午跑到公司接头,正商议实施方案时,空空打电话过来,说那个玩家飘上线来,在线监听发现他似乎在完成了某个任务后,然后卖出东西金钱就会突然飚升。我想想觉的这样似乎不可能,毕竟卖出道具和任务并没有任何关联,于是让空空想办法截一下图,看看是什么任务。挂了电话,继续讨论,还没说上三分钟,空空又打电话来,说查到玩家买入一个道具,再卖出9727个道具,于是就获得了相应的金钱。
听到这里,我觉得简直就是不可思议 - 不可思议的并非会不会有这样的BUG,而是 - 且先不表,我翻到卖出道具的代码仔细看看,果然,卖出不可叠加的道具没有判断数量,而是简单的析构道具,然后按照客户端发送过来的数量计算金钱...... @(#*!@#&(!&@#
总之,这是问道亘古以来就有的BUG,而且服务器端到客户端的通讯数据一直都是明文,没有刻意加密,使用WPE甚至是FPE都可以轻松的利用这个BUG,但是似乎开放服务一年来,这个问题从来没有泛滥。我想,唯一能解释的是:发现这个BUG的那些人耐心极好,直到今天,才跳出了一个愣头青。
问题侥幸被秒杀了,但是服务器端的录像究竟做还是不做,当然要做,而且要尽快做好 - 有寒号鸟为先例。
任何一个BUG都永远不会是最后一个BUG。
没有评论:
发表评论