在某平台被检测到作弊后,玩家英雄模型会变为红色,并且发送聊天消息提示“作弊者”字样。
目测是通过地图脚本来实现的作弊检测,此类检测依靠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 分钟之中 随机选择两个时间进行检测。这局游戏时间较短,他很侥幸的躲过了一劫。
至于过检测的方法,绝对不止一种。
为了维护游戏的公平性,暂时不能公布。
也许以后吧。