本帖最后由 quitout 于 2015-6-8 17:28 编辑 让脚本远离行为检测封号
本文由按键学院提供技术支持
按键学院技术交流①群(1群):547563540(开放中)
按键学院技术交流②群(2群):465560580(开放中)
按键学院技术交流③群(3群):714719015(开放中)
之前学院院刊当中有发布过关于应对游戏检测的方法。(还不知道的请戳这里 →→ 轻松应对游戏的检测) 但是之前对于行为检测只是大概的阐述,这次小编就给大家具体的介绍下行为检测,还有应对行为检测的方法 |
在我们想要解决行为检测之前要先搞清楚什么是行为检测。
行为检测就是检测游戏中用户有规律的操作,如果有发现规律性的操作,那就会进行封号之类的处罚。规律性的操作范围就包含了很广了。比如一直重复按着某一个按键,重复进行某种操作等等。
有的同学可能会有疑问了,我手动玩的时候也是一直在重复某些操作,那为什么就没被封号呢? 这个是因为虽然手动也是在进行重复的操作,但是无法做到细节上的精确一致。比如手动重复按某键,能保持每次间隔固定的300毫秒吗?点击某个坐标,能保持每次点击的坐标点都一致吗? 手动操作的时候是无法做到的,但是脚本就可以,脚本是程序,每次的操作在细节上都是会保持一致。 所以游戏就是抓住了这点区别来进行行为检测封号的。
[hide]
既然我们知道了行为检测的原理,那就可以想办法制定出对策。总体的解决方法围绕一个点来进行:
细节随机性只要在一些操作上加上随机数,那就可以很大程度上避免了被游戏的行为检测发现。所以
随机数很重要!随机数很重要!随机数很重要!(重要的事情要说三遍)
下面就介绍下常用的防行为检测的方法1、鼠标移动一些新手在在使用移动命令的时候都是直接使用 MoveTo 命令,这样移动到的坐标点位置每次都是一样的,所以我们需要加一些随机数上去,让他每次移动的时候的位置发生一些变化。
下面这个就是最简单的随机移动的范例,他是在坐标周围的10个像素点范围内随机移动。
- Randomize //初始化随机数
- 随机数 = Int((10 - 0 + 1) * Rnd + 0) //随机数标准生成公式
- MoveTo x + 随机数, y + 随机数
复制代码当然在实际的编写代码过程中肯定不会直接使用这样的写法的,因为如果每次移动鼠标都要写这么多的话,那太繁琐了,我们需要封装成函数,每次要移动鼠标的时候调用即可
- Function 移动(x,y)
- Randomize//初始化随机数
- //为了增加随机性,把x和y的随机数设置成不同的数值
- 随机_x = Int((10 - 0 + 1) * Rnd + 0)
- 随机_y = Int((10 - 0 + 1) * Rnd + 0)
- MoveTo x + 随机_x, y + 随机_y
- End Function
复制代码 PS:随机的范围大小 可以根据实际情况进行调整。
2、键盘按键键盘上操作容易被检测的也就是施放技能之类的操作了,和鼠标移动的类似,也是可以通过加延迟来避免检测。
在施放技能的时候如果对于技能施放的顺序没有特别要求的话,也可以把施放技能的顺序打乱进行施放
下面这个函数就是可以打乱顺序按键并且在5秒的范围内随机延迟
- Function 技能(keylist)
- Do
- Randomize//初始化随机数
- 随机延时 = Int((5000 - 1000 + 1) * Rnd + 1000)
- 随机数 = Int((len(keylist) - 1 + 1) * Rnd + 1)
- //随机取出字符串中的其中一个字符按下,并随机延迟
- key = mid(keylist, 随机数, 1)
- KeyPress key, 1
- Delay 随机延时
- Loop
- End Function
复制代码 3、随机行为在防止行为检测的处理上,如果只有按键和移动方面的随机,还是不够完美的。我们可以在脚本的操作上加入一些随机的行为
什么是随机的行为?简单的说就是一些无意义的操作。比如随意的打开某些界面之类的。进行这些操作,既不会增加太多脚本难度,同时也增加了脚本的随机性。
我们可以把一些无意义的操作分别封装成一些子程序,然后再写成一个函数用来随机调用他们
- Function 随机动作
- Randomize//初始化随机数
- 随机数 = Int((4 - 1 + 1) * Rnd + 1)
- Select Case 随机数
- Case 1
- Call 打开好友列表
- Case 2
- Call 打开人物属性
- Case 3
- Call 查看宠物
- Case 4
- Call 喊话
- End Select
- End Function
复制代码 PS:在选择一些随机操作的时候,尽量选择一些不影响代码主功能的操作,否则给主代码增加太大的负担就得不偿失了
游戏的检测和脚本之间就像一场拉锯战,没有什么办法是可以一劳永逸的。本篇院刊起到的是指导思路的作用,希望童鞋们可以从中受到一些启发,想出更好的方法。
对于本篇院刊中提到的方法,如果有什么问题或者有更好的建议的话,也欢迎童鞋们回帖说明
相关院刊:
轻松应对游戏的检测showtopic.aspx?topicid=570762&forumpage=1&page=1模拟真实鼠标动作防检测showtopic.aspx?topicid=545492&forumpage=1&page=1院刊目录showtopic.aspx?topicid=549014&forumpage=1&page=1
谢谢大家阅读,记得给小编送支花花 ! 顺手点个赞