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

                    }

                    

  • 相关阅读:
    [Todo]很不错的Java面试题类型整理,要看
    [Todo] Java并发编程学习
    自建一个Java Spring MVC项目
    [Todo] 乐观悲观锁,自旋互斥锁等等
    [Todo] Redis里面队列的两种模式,以及抢红包在Redis中的实现
    hdu 4704 同余定理+普通快速幂
    [置顶] ubuntu 和 win7 远程登陆 + vnc登陆
    mysql之触发器
    Jsoup API解析HTML中input标签
    IOS UITableView单条刷新,数据不刷新解决方案
  • 原文地址:https://www.cnblogs.com/chenhongyu/p/3003081.html
Copyright © 2011-2022 走看看