|
文/旭曜灵
承上篇:从开发者的角度谈游戏防弊:盗版、山寨与外挂
五、修改存储器、存档(金手指)
游戏中许多数值和状态都是暂存在存储器或存档的,例如角色的HP、技能冷却、道具数量等等,所以如果让玩家任意修改,就可能产生严重问题。
应对方法:
单机游戏:
将程序码混淆、重要数值随机加密、隐藏存档位置、存档不能给其他账号共享......等等。
如此可以提升玩家修改资料时的难度。
象是《RPG制作大师》所做的游戏,暂存于存储器中的数值,都是经过「乘以2再加1」的固定加密,
例如游戏中的100金币就会记录为201,这么一来,不知道的人就难以修改了。
(但就像现在我们都知道了,所以才需要随机加密)
如这款《Cookie Clicker 饼干点击者》以前还没有防止修改,几乎什么都可以靠改参数改出来,但现在似乎已经没那么容易了。
在线游戏:原则就是「不信任从客户端传来的任何信息」,重要资料都存在伺服端,重要数据和结果都在客户端和伺服端进行双重验证及计算......等等,但也不仅限于这些而已。
而像《Diablo 2 暗黑破坏神2》的做法是,单机模式离线游玩时,随便玩家修改也无所谓,但是到了在线天梯竞赛时,重要资料都存在伺服端做验证,那就比较难修改了。
至于程序码混淆可以达到什么样的效果呢?这个国际 C 语言程序码混淆大赛或许可以作为参考
(但是搞得这么夸张,大概连程序设计师本人都快看不懂了)。
六、伪造、修改、复制封包
如《RO 仙境传说》当中,玩家用外挂可以不消耗道具「苍蝇翅膀」就进行瞬间移动,或以人手不可能达到的高速度喝补血药水,就有可能是透过传送自订的游戏封包所办到。
例如原本使用苍翅瞬移的正常流程可能是──
1) 玩家按下使用苍翅的快捷键
2) 客户端判断身上是否有苍翅
3) 如果有,就扣除一个苍翅
4) 向伺服端发送「玩家瞬移」的封包
5) 玩家执行瞬移
但是外挂略过了前面的步骤,直接发送第4步骤的封包给伺服端,而伺服端未检查此瞬移的合理性就允许,于是就能在未消耗道具的情况下瞬移了。
如《Candy Crush Saga》当中,这个高到夸张的过关纪录,也很可能是透过传送窜改过分数的过关封包来达成的。
应对方法:
伺服端固然必须验证每个封包的合法性,也必须防止同一个封包因Lag或复制而重复发出。
不过伺服端虽然可以任何事都加以验证,但也肯定会造成效能上的负担,所以也得依重要程度来取舍,较轻微的就略过,或是偶尔才检查一次。
七、在线游戏利用Bug(洗钱、复制之类)
应对方法:
除了在开发时尽量设想周全、多加测试、建立好Bug回报机制,还有个保险做法是监控每天服务器中较重大的变化,发生重大问题时,自动以简讯等方式实时通知负责人,并且将服务器中的游戏资料保存至少1~3个月,随时可供回溯。
举例来说,像《RO》当中就曾经发生过精鍊装备的Bug,当时游戏中的四级装备最高可精鍊到+10,但机率非常之低,这时市面上却出现了大量的+10四级装备,于是玩家之间掀起了恐慌,深怕受到回溯牵连。
若官方要等到这些非法道具、游戏币大量流入市面甚至交易网站才察觉,那就太晚了,有可能连回溯都不足以解决;
但如果官方有后台程序自动监控,当某个玩家精鍊出+10四级装备时自动记录、某一天产生两件以上+10四级装备时自动传简讯警告,那么就可以在事态恶化之前及早处理了。
在《RO》精鍊装备时若不想冒着搞坏装备的风险,也就只能弄出+4的装备了。
毕竟负责精鍊的NPC可是出了名的奶油手,动不动就手滑啊!
八、DDoS(阻断服务攻击 )
所谓的DDoS,简单来说就是利用木马入侵的大量僵尸计算机连线,来挤爆服务器。
这也是很难防范的,因为DDoS技术不难、又不容易追查源头的真凶、也很难分辨对方是进行DDoS的人、或只是正常连线的玩家。
应对方法:
限制连线资格(例如需要先购买游戏,或申请账号需要实名制、绑定手机验证等等)、扩充硬设备(但代价昂贵),不然就是报警追查了。
九、盗账号
若玩家本身资安常识不足,爱用外挂、VPN、或和人共享账号、使用容易破解的密码,那么官方保护得再好也没用。
应对方法:
倡导资安观念、要求玩家设置安全性较高的密码、绑定登入位置或硬件、通讯锁、仓库锁、重要物品禁止或延迟交易......等等。
Steam的通讯锁,能帮助玩家更好地保护自己的账号。
而游戏这边,亦需要给有价值的道具都赋予唯一编号,如此不管道具是被复制、或流落到他人手中,都可以轻易查出流向。
十、诈骗
应对方法:
花样百出、防不胜防的诈骗,恐怕也只能在游戏中多提醒玩家保持警觉了。
如《Tree of Savior 救世主之树》就会在过场景时提示,
真正的GM外观和一般玩家大不相同。
而将游戏中的对话、交易、拾取道具等纪录都存成Log备查,也会在事件发生时对厘清真相大有帮助,还有就是靠客服的经验累积了。
以上就是这次的分享了,若能起到抛砖引玉的作用就更好了,欢迎大家留言补充指教喔!
|
|