zoukankan      html  css  js  c++  java
  • 页游变速齿轮作弊的前端处理(转)

    变速齿轮这样的作弊软件已经不是什么新鲜的玩意了,但是它们的出现缺验证的破坏掉游戏的运营与维护。
    下面来说说怎么在前端中将这样的一款毒瘤给摘除掉。

    首先看看变速齿轮这类软件的工作原理:
    变速齿轮工作的原理是通过修改API函数GETTICKCOUNT和TIMEGETTIME骗过了游戏和程序的定时器导致游戏和程序速度看起来被改变。

    咋一看,貌似十分不好处理,因为经过变速齿轮加速后,播放器的运算时间也被修改了,其表现就是通过调用gettimer的方式获得的时间已经跟实际时间不同了。
    怎么去防止此类操作呢?其实突破点也不难找,虽然通过修改API函数GETTICKCOUNT和TIMEGETTIME骗过了游戏和程序的定时器导致游戏和程序速度看起来被改变后的游戏运行时间已经不可信任,但是系统时间却还是准确的。我们只要通过获取系统时间的间隔差值与通过gettimer()得到的时间间隔差值比较一下就可以知道玩家当前时候通过变速齿轮在作弊了。当然为了更加准确,这里还进行了一个连续处罚次数来保证期判断的准确性。
    下边是具体的检测代码实现。

     private static var cheatNum:int

                    private static var cheatTime:int

                    private static var timerNum:int;

                    public static function checkCheat():void

                    {

                            var date:Date=new Date

                            var durValue:int=date.time-cheatTime

                            var timerdurValue:int=getTimer()-timerNum

                            if(timerdurValue-durValue>10)

                            {

                                    cheatNum++

                                    if(cheatNum>5)

                                    {

                                            tarce("检测到异常操作")

                                    }

                            }else {

                                    cheatNum=0

                            }

                            timerNum=getTimer()

                            cheatTime=date.time

                    }

                    

  • 相关阅读:
    MYSQL-----IFNULL()函数的用法
    《你的灯亮着吗?》读书笔记
    《测试架构师修炼之路》阅读笔记第三章
    未记录书名的一本营销书阅读记录
    Spring注解@Component、@Repository、@Service、@Controller区别
    PropertyPlaceholderConfigurer的用法:
    Jackson Streaming API to read and write JSON
    ParameterizedType的作用
    setTimeOut传参数(转)
    mybatis使用count返回int的方法
  • 原文地址:https://www.cnblogs.com/chenhongyu/p/3003081.html
Copyright © 2011-2022 走看看