最近游戏开始出外挂了,目前已经发现有一个加速外挂可以对游戏进行加速
之前我们是做过对加速的限制的,原理也挺简单,就是对时,每隔一定的时间向服务器发送一个心跳包,细微的时间误差是允许的,但当时间误差达到一个值时,比如10秒,就认为这个客户端是有问题的,就把客户端的socket断开。
这个限制加上后在一段时间内都没有加速的外挂有用了。
这两天发现的加速外挂是篡改了flash虚拟机的API,居然把getTimer()的返回值返回了一个负值,这就导致flash这边的定时器出了些问题,再加上之前的限制里面,服务器的代码也是有问题的,依赖客户端的心跳包,其实应该发现客户端在一定的时间内没有发心跳包也要把socket断开,客户端也做了一些处理,就是每一帧都判断一下getTimer()返回的是不是负值,如果是负值,那认为这个客户端是有问题的,断开socket。这样服务端客户端都做了相应的检查,应该可以防一段时间了。