在某平台被检测到作弊后,玩家英雄模型会变为红色,并且发送聊天消息提示“作弊者”字样。
目测是通过地图脚本来实现的作弊检测,此类检测依靠jass函数进行作弊检测,只要找到检测逻辑就可惜轻松过检测。
本文的主要目的并不是帮助玩家作弊,而是分析检测作弊的原理。
那么先对 某平台的地图进行分析,发现大量lua脚本,解包以后,搜索“作弊”关键字没有结果,随便打开一个脚本 原来部分字符串都被编码过了。
字符串以16进制的形式写在脚本里。把“作弊”的UTF8编码加上 \x 就能搜索到了。
定位到该脚本内,明显发现脚本被混淆过。
变量名一塌糊涂,缩进也是,不过从字里行间还是能看出一些线索
local function __0x6398__(__0x0142__) if __0x0142__.__0x4346__>=99 then if __0x1757__(1,100)<=20 then __0x0142__.__0x4348__=true else __0x0142__.__0x4348__=false end end end
这个函数对一个变量进行了判断,如果变量值大于99 那么随机生成一个在[1,100]之间的数 如果这个数小于20 设置一个标志位。
这个函数一看就明白作者的意图了,检测到作弊不一定报告,而是有一定几率,增加外挂作者的工作量。
local function __0x6392__(__0x0422__) local __0x0608__=0 local __0x6393__=false local __0x6394__=89 if __0x0422__.__0x6387__>0 then __0x6393__=true end if __0x0422__.__0x6388__>0 then __0x6393__=true end if __0x0422__.__0x6389__>0 then __0x0608__=__0x0608__+99 __0x6394__=99 end if __0x0422__.__0x6386__>30 then local __0x6395__=0.7 local __0x6396__=__0x0422__.__0x6385__/__0x0422__.__0x6386__/__0x6395__*100 __0x0608__=__0x0608__+__0x6396__ if __0x6396__>=100 then __0x6393__=true end end if __0x0422__.__0x6390__>0 then __0x0608__=math.max(__0x0608__,50) local __0x6397__=10 __0x0608__=__0x0608__+__0x0422__.__0x6390__*__0x6397__ end if __0x6393__ then __0x0608__=100 else __0x0608__=math.min(__0x0608__,__0x6394__) end return math.floor(__0x0608__) end
这个函数检测了一大堆变量 用来设置 __0x0608__ 这个值 ,经过分析,这个值其实就是判断一个玩家是作弊玩家的可信度 confidence。
当confidence >= 99 即确认这个玩家正在作弊。
for _,__0x0108__ in ipairs(__0x6408__[__0x4332__]) do __0x0142__:__0x0825__(__0x0108__) local __0x6412__=__0x0015__.__0x3327__(__0x2541__.selection()) __0x0636__.info('__0x6412__',__0x6412__) __0x0636__.info('__0x0108__',__0x0108__) __0x0636__.info('__0x0543__',__0x0543__) if __0x6412__==__0x0108__ then __0x1933__.__0x6385__=__0x1933__.__0x6385__+1 __0x0636__.info('__0x1933__.__0x6385__',__0x1933__.__0x6385__) if __0x6412__==__0x0543__ then __0x1933__.__0x6387__=__0x1933__.__0x6387__+1 __0x0636__.info('__0x1933__.__0x6387__',__0x1933__.__0x6387__) end end __0x1933__.__0x6386__=__0x1933__.__0x6386__+1 __0x0636__.info('__0x1933__.__0x6386__',__0x1933__.__0x6386__) end
把元素一个一个取出来 作为参数传给一个函数 然后通过jass api 获取玩家当前选择的单位
根据条件 调整参数,__0x6385__ __0x6387__ __0x6386__可以看出 如果一切正常 __0x6386__ 应该+1
local __0x6413__=__0x0053__.__0x0142__[13]:__0x1314__((string.char(101,50,49,76)),__0x0040__.__0x0525__[(string.char(233,128,137,228,186,186,229,140,186,229,159,159))]:__0x0146__()) __0x0142__:__0x0825__(__0x6413__) local __0x6414__=__0x0015__.__0x3327__(__0x2541__.selection()) __0x0636__.info('__0x2541__.selection()',__0x2541__.selection()) __0x0636__.info('__0x6413__',__0x6413__) __0x0636__.info('__0x6414__',__0x6414__) if __0x6414__~=__0x6413__ then __0x1933__.__0x6389__=__0x1933__.__0x6389__+1 __0x0636__.info('__0x1933__.__0x6389__',__0x1933__.__0x6389__) end __0x6413__:__0x0120__(string.char(233,154,144,232,186,171)) __0x0142__:__0x0825__(__0x6413__) local __0x6415__=__0x0015__.__0x3327__(__0x2541__.selection()) __0x0636__.info('__0x6415__',__0x6415__) __0x6413__:__0x0081__() if __0x6415__==__0x6413__ then __0x1933__.__0x6388__=__0x1933__.__0x6388__+1 __0x0636__.info('__0x1933__.__0x6388__',__0x1933__.__0x6388__) end
同样的手法 不过经过后期的分析,__0x6414__ __0x6413__ 为table __0x6415__ 正常应为nil
如果按照老方法patch SelectUnit 或者以其他方式拦截 驱使玩家选中单位的操作 都会在这里被检测到
local __0x6422__=nil for __0x0239__=0,3 do for __0x0249__=0,2 do local __0x6423__,__0x1397__=__0x2541__.button(__0x0239__,__0x0249__) if __0x1397__ then __0x6422__=true end
刚开始这里确实没看出来作者的意图 不过 那两个循环仔细观察就能看出来猫腻
一共4*3次循环 不就是war3右下方的动作栏嘛
加上button的提示 那么这应该就是检测是否能看见某个单位的 技能 或者 可用的动作
如果作弊者开启了显示技能这个作弊选项的话 就会被检测到
实际上 即使作弊者没开显示技能 只要他能看见视野外的 “模型” 这个函数同样能检测出来。
这就是目前某平台全部的检测手段。
多亏了lua引擎的日志系统 对地图脚本进行更改 就可以得到更多更详尽的数据
[info]: __0x6412__ nil [info]: __0x0108__ table: 3AEA3E98 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 1 [info]: __0x6412__ nil [info]: __0x0108__ table: 3AEA5440 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 2 [info]: __0x6412__ nil [info]: __0x0108__ table: 3AEA6A20 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 3 [info]: __0x6412__ nil [info]: __0x0108__ table: 3AEA7EE8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 4 [info]: __0x6412__ nil [info]: __0x0108__ table: 48A0AA38 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 5 [info]: __0x6412__ nil [info]: __0x0108__ table: 3AEA89A0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 6 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B803CC0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 7 [info]: __0x6412__ nil [info]: __0x0108__ table: 436A3638 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 8 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B8082F8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 9 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B809130 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 10 [info]: __0x6412__ nil [info]: __0x0108__ table: 3ABD4208 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 11 [info]: __0x6412__ nil [info]: __0x0108__ table: 43DFBE98 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 12 [info]: __0x6412__ nil [info]: __0x0108__ table: 43E825D8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 13 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B8DD778 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 14 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B8DA8E0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 15 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEC0490 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 16 [info]: __0x6412__ nil [info]: __0x0108__ table: 436A7618 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 17 [info]: __0x6412__ nil [info]: __0x0108__ table: 436A2598 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 18 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEC28E0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 19 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEC3948 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 20 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D23BD18 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 21 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D23DB80 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 22 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEC4EF0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 23 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D2390B0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 24 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D23A9A0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 25 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D237398 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 26 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEC6070 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 27 [info]: __0x6412__ nil [info]: __0x0108__ table: 4387A790 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 28 [info]: __0x6412__ nil [info]: __0x0108__ table: 441E5088 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 29 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEE1EE0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 30 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEDEE18 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 31 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEFAD18 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 32 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEEC2D0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 33 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEED808 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 34 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEEE480 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 35 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B74C2E8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 36 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B74D740 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 37 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B74E1F8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 38 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B74F768 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 39 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B751598 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 40 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B752670 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 41 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B7533C8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 42 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B754200 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 43 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B7552D8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 44 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B7566F8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 45 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B757B18 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 46 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B758C60 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 47 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B759948 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 48 [info]: __0x6412__ nil [info]: __0x0108__ table: 437CC630 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 49 [info]: __0x6412__ nil [info]: __0x0108__ table: 437CB440 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 50 [info]: __0x6412__ nil [info]: __0x0108__ table: 437CA918 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 51 [info]: __0x6412__ nil [info]: __0x0108__ table: 437CA100 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 52 [info]: __0x6412__ nil [info]: __0x0108__ table: 437C9610 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 53 [info]: __0x6412__ nil [info]: __0x0108__ table: 437D9600 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 54 [info]: __0x6412__ nil [info]: __0x0108__ table: 4375DEA8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 55 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B75A908 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 56 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B74B280 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 57 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B75BEC8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 58 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B75D898 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 59 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B75EE78 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 60 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B75F9A0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 61 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B760730 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 62 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B761728 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 63 [info]: __0x6412__ nil [info]: __0x0108__ table: 48907A78 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 64 [info]: __0x6412__ nil [info]: __0x0108__ table: 48908DF0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 65 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B762B10 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 66 [info]: __0x6412__ nil [info]: __0x0108__ table: 489042B0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 67 [info]: __0x6412__ nil [info]: __0x0108__ table: 441D2518 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 68 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B763FA0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 69 [info]: __0x6412__ nil [info]: __0x0108__ table: 4351E140 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 70 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B765388 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 71 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B7668F8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 72 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B767420 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 73 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FC4F00 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 74 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FCFE38 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 75 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FC69E8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 76 [info]: __0x6412__ nil [info]: __0x0108__ table: 4936E4E8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 77 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B767D88 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 78 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D242BC8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 79 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D2466D8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 80 [info]: __0x6412__ nil [info]: __0x0108__ table: 4937B560 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 81 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D245600 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 82 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D2441A8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 83 [info]: __0x6412__ nil [info]: __0x0108__ table: 4D241070 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 84 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B769838 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 85 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BF2A5B0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 86 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BF2BC38 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 87 [info]: __0x6412__ nil [info]: __0x0108__ table: 40957D10 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 88 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FCDBA8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 89 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FCADF0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 90 [info]: __0x6412__ nil [info]: __0x0108__ table: 40961320 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 91 [info]: __0x6412__ nil [info]: __0x0108__ table: 4095A1D0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 92 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FCBFA8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 93 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FC9228 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 94 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FC7E08 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 95 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEBC8A0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 96 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BEBBD40 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 97 [info]: __0x6412__ nil [info]: __0x0108__ table: 3B89B140 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 98 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BF1E2C8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 99 [info]: __0x6412__ nil [info]: __0x0108__ table: 48B47188 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 100 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BF20C58 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 101 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BF223C0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 102 [info]: __0x6412__ nil [info]: __0x0108__ table: 43E35AE8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 103 [info]: __0x6412__ nil [info]: __0x0108__ table: 438867F0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 104 [info]: __0x6412__ nil [info]: __0x0108__ table: 432D1180 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 105 [info]: __0x6412__ nil [info]: __0x0108__ table: 43884100 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 106 [info]: __0x6412__ nil [info]: __0x0108__ table: 438817E0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 107 [info]: __0x6412__ nil [info]: __0x0108__ table: 432C78D0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 108 [info]: __0x6412__ nil [info]: __0x0108__ table: 432C46B8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 109 [info]: __0x6412__ nil [info]: __0x0108__ table: 44004598 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 110 [info]: __0x6412__ nil [info]: __0x0108__ table: 440019A0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 111 [info]: __0x6412__ nil [info]: __0x0108__ table: 43FFD2F8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 112 [info]: __0x6412__ nil [info]: __0x0108__ table: 432CB568 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 113 [info]: __0x6412__ nil [info]: __0x0108__ table: 432C9150 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 114 [info]: __0x6412__ nil [info]: __0x0108__ table: 432CC1E0 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 115 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BF44620 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 116 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BF44D20 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 117 [info]: __0x6412__ nil [info]: __0x0108__ table: 3BF5F2F8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 118 [info]: __0x6412__ nil [info]: __0x0108__ table: 4875B390 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 119 [info]: __0x6412__ nil [info]: __0x0108__ table: 48BB1D58 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 120 [info]: __0x6412__ nil [info]: __0x0108__ table: 40B108C8 [info]: __0x0543__ table: 40B108C8 [info]: __0x1933__.__0x6386__ 121 [info]: __0x6413__ table: 40A371B0 [info]: __0x6414__ table: 40A371B0 [info]: __0x6415__ nil
上面的日志是另外添加上的,可以看到检测方法 __0x6410__ 已经被完全bypass
与作弊有关的值均没有被设置 __0x6386__ 为没有检测到作弊行为时设置的值
[info]: ---------------------------玩家编号--------------------------- 1 [info]: -----------------------------[检测作弊]----------------------------- [info]: 0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 2 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 114 [info]: 0.0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 3 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 114 [info]: 0.0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 4 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 114 [info]: __0x0422__.__0x6390__ 16 [info]: 89 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 5 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 114 [info]: 0.0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 6 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 114 [info]: 0.0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 7 [info]: -----------------------------[检测作弊]----------------------------- [info]: 0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 8 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 121 [info]: 0.0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 9 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 121 [info]: 0.0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 10 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 121 [info]: 0.0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 11 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 121 [info]: 0.0 [info]: -----------------------------[检测作弊]----------------------------- [info]: ---------------------------玩家编号--------------------------- 12 [info]: -----------------------------[检测作弊]----------------------------- [info]: __0x0422__.__0x6386__ 121 [info]: 0.0 [info]: -----------------------------[检测作弊]-----------------------------
上面截取的一段日志也是来自于同一场游戏,可以看到已经有玩家的confidence 达到了89
根据该玩家的被设置的标志位
他应该开启了作弊,并且没有bypass技能检测。
根据一段时间的观察 检测函数一般会在游戏开始后 10、15、20、25 分钟之中 随机选择两个时间进行检测。这局游戏时间较短,他很侥幸的躲过了一劫。
至于过检测的方法,绝对不止一种。
为了维护游戏的公平性,暂时不能公布。
也许以后吧。