最近一直忙于游戏功能的开发,本以为当前玩家规模比较小,暂时不用过多考虑外挂的问题,但事实告诉我太低估了玩家的热情和动手能力。这几天随着有些老玩家淡出游戏,这些外挂的事情也慢慢浮出水面,我也仔细反思了一下外挂的问题。

    游戏外挂根据原理可以分为以下几类:

【按键精灵】
危害度:★★★(影响到游戏的公平性)
原理:模拟用户的点击行为,编写成为脚本持续进行操作。
防范措施:
  1. 系统设计角度:所有资源产出都有上限,不能出现被无限刷(必要)
  2. 行为监测角度:对用户行为进行统计,非正常的行为可以进行封号
  3. 客户端角度:检测本机是否有类似进程,让客户端与此不能共存

【内存修改】
危害度:★★★★(严重影响到游戏的公平性)
原理:直接对客户端本地的内存数据进行修改
防范措施:
  1. 数据来源角度:网络游戏可以让本地都不产生可信数据,数据都是从服务器端过来,这样可以杜绝此破解办法。(必要)
  2. 客户端角度:检测本机是否有类似进程,让客户端与此不能共存
  3. 客户端角度:对所使用的内存区域进行保护,定时检测是否有篡改现象

【篡改客户端】
危害度:★★★★(严重影响到游戏的公平性)
原理:反编译客户端,对其中一些关键逻辑代码进行修改
防范措施:
  1. 反编译难度:将原代码进行混淆,甚至进行加壳,增加反编译的成本(必要)
  2. 关键代码加密:特别关键的代码可以考虑用c编写,然后封装成二进制的类库进行调用

【伪造请求】
危害度:★★★★★(严重破坏游戏的平衡)
原理:模拟客户端发送通讯请求,甚至篡改通讯中间的数据
防范措施:
  1. 数据加密:通讯数据一定要进行加密,增加分析的成本,同时防止通讯层面上的盗号(必要)
  2. 通讯附带随机验证码:让每次通讯请求附带一个约定的随机验证码,以确保这个数据确实是客户端产生的。

 

    我大概想了一下就这些,不知道是不是还有其他的方式。但是游戏外挂对游戏会有致命性打击,谁也不愿意看到自己辛辛苦苦的成果被外挂搞死,所以趁别人还没做这个事情的时候,先把路堵上,以绝后患。