- 按键认证大神
- 728264
- 3502
- 18
- 1899 朵
- 27454 个
- 1718 个
- 82980
- 2011-08-04
|
1#
t
T
发表于 2022-05-03 00:43
|
|只看楼主
这里是防检测技巧的第二弹,今天要讲的是键鼠检测。什么是键鼠检测?键鼠检测分以下几种情况:1、键鼠操作无效或操作后马上掉线。常见问题原因:普通键鼠被检测。可尝试解决方案:可尝试更换驱动键鼠,如按键自带的超级模拟(SetSimMode 2),以及具有相同功能的其他驱动键鼠插件,如DD、大漠、乐玩等。2、键鼠操作短时间后掉线。常见问题原因:行为检测其中一环,键鼠操作过于规律或太快,如延迟太短、延迟一致、点击某个东西的时候坐标完全一致等。可尝试解决方案:增加随机延迟、一定范围内的坐标随机。3、鼠标操作总是乱跑,不能到达指定坐标点。常见问题原因:鼠标被干扰了。可尝试解决方案:使用MoveR封装替代MoveTo的功能。4、鼠标操作较长时间后掉线。常见问题原因:行为检测其中一环,鼠标瞬移操作。可尝试解决方案:最常见的是使用鼠标轨迹进行模拟真人移动,但是这里我再提出一种鼠标移动方案,鼠标抖动。什么是鼠标抖动?就是在鼠标移动到目标点之前或者之后,鼠标在当前位置进行小幅度移动,由于移动幅度较小,看起来像是鼠标在抖,所以我给它取了这个名字。鼠标抖动相较于鼠标轨迹,甚至优于一些鼠标轨迹,而且效率更高,因为它跟正常移动一样也是瞬移过去,只是多动几下鼠标,而大部分人写的鼠标轨迹的移动步长和移动间隔是固定的,而不是浮动值,被针对也不是什么怪事。此方法是我被某游戏检测到了鼠标轨迹后想到的,我赌的就是游戏只检测你鼠标在点击前后是不是进行了快速地大范围的移动,亲测在一些游戏里有奇效。键鼠随机延迟:- MoveTo 100, 200
- Delay 生成随机数(10, 30)
- LeftDown 1
- Delay 生成随机数(30, 50)
- LeftUp 1
- KeyDown "A", 1
- Delay 生成随机数(30, 50)
- KeyUp "A", 1
- Delay 生成随机数(10, 30)
复制代码 鼠标移动随机范围:- Call MoveTo1(100, 200, Array(2, 2))
- Function 生成随机数(num1, num2)
- Dim L, U
- If num1 > num2 Then
- L = num2
- U = num1
- Else
- L = num1
- U = num2
- End If
- Randomize
- 生成随机数 = CLng(Int((U - L + 1) * Rnd + L))
- End Function
- Function MoveTo1(x,y,偏移范围)
- x = x + 生成随机数(- 偏移范围(0) , 偏移范围(0))
- y = y + 生成随机数(- 偏移范围(1) , 偏移范围(1))
- MoveTo x, y
- End Function
复制代码 鼠标相对移动:- Call MoveTo2(100, 200, Array(2,2))
- Function MoveTo2(x, y, 偏移范围)
- x = x + 生成随机数(- 偏移范围(0) , 偏移范围(0))
- y = y + 生成随机数(- 偏移范围(1) , 偏移范围(1))
- Dim jx, jy
- GetCursorPos jx, jy
- MoveR x - jx, y - jy
- End Function
- Function 生成随机数(num1, num2)
- Dim L, U
- If num1 > num2 Then
- L = num2
- U = num1
- Else
- L = num1
- U = num2
- End If
- Randomize
- 生成随机数 = CLng(Int((U - L + 1) * Rnd + L))
- End Function
复制代码 注:部分插件中的MoveR需要将电脑鼠标属性中的“指针移动速度”调节至6并且关闭“提高指针精准度”,否则鼠标移动的坐标可能无法正确到达。鼠标轨迹移动:- Call 鼠标轨迹移动(100, 200, Array(2,2), 0.02,Array(5,10))
- Function 鼠标轨迹移动(x, y, 偏移范围, 步长, 移动间隔)
- Dim jx, jy
- GetCursorPos jx, jy
- Dim 数据, 轨迹
- 数据 = 生成移动轨迹(jx, jy, x, y, 步长)
- 轨迹 = Split(数据, "-")
- For i = 0 To UBound(轨迹)
- 坐标 = Split(轨迹(i), ",")
- x = Clng(坐标(0))
- y = Clng(坐标(1))
- Call MoveTo2(x, y, 偏移范围)
- Delay 生成随机数(移动间隔(0),移动间隔(1))
- Next
- End Function
- Function MoveTo2(x, y, 偏移范围)
- x = x + 生成随机数(- 偏移范围(0) , 偏移范围(0))
- y = y + 生成随机数(- 偏移范围(1) , 偏移范围(1))
- Dim jx, jy
- GetCursorPos jx, jy
- MoveR x - jx, y - jy
- End Function
- Function 生成节点(x1, y1, x2, y2)
- 生成节点 = x1 & "," & y1 & "|" & CLng((x1 + x2) / 4) & "," & CLng((y1 + y2) / 2) & "|" & CLng((x1 + x2) / 2) & "," & CLng((y1 + y2) / 4) &"|" &x2 & "," & y2
- End Function
- Function 生成移动轨迹(x1, y1, x2, y2, 步进)
- 生成移动轨迹 = Plugin.TURING.BezierCurve(生成节点(x1, y1, x2, y2), 步进)
- End Function
- Function 生成随机数(num1, num2)
- Dim L, U
- If num1 > num2 Then
- L = num2
- U = num1
- Else
- L = num1
- U = num2
- End If
- Randomize
- 生成随机数 = CLng(Int((U - L + 1) * Rnd + L))
- End Function
复制代码 注:为了实现更仿真的轨迹,此功能使用了图灵插件提供的“贝塞尔曲线”,插件在源文件内可下载。鼠标抖动移动:- Call 鼠标抖动移动(100, 100, Array(2, 2), 3, Array(2, 4), Array(1, 3), Array(5, 10))
- Delay 生成随机数(30,50)
- Function 鼠标抖动移动(x, y, 偏移范围, 鼠标抖动模式, 鼠标抖动范围, 鼠标抖动次数, 鼠标抖动间隔)
- If 鼠标抖动模式 = 1 Or 鼠标抖动模式=3 Then
- Call 鼠标抖动( 鼠标抖动范围, 鼠标抖动次数, 鼠标抖动间隔)
- End If
- Call MoveTo2(x, y, 偏移范围)
- If 鼠标抖动模式 = 2 Or 鼠标抖动模式 = 3 Then
- Call 鼠标抖动(鼠标抖动范围, 鼠标抖动次数, 鼠标抖动间隔)
- End If
- End Function
- Function MoveTo2(x, y, 偏移范围)
- x = x + 生成随机数(- 偏移范围(0) , 偏移范围(0))
- y = y + 生成随机数(- 偏移范围(1) , 偏移范围(1))
- Dim jx, jy
- GetCursorPos jx, jy
- MoveR x - jx, y - jy
- End Function
- Function 鼠标随机相对偏移(鼠标抖动范围,鼠标抖动间隔,偏移方向)
- Dim X_py, Y_py, L_py, U_py, X_fh, Y_fh, XY_fx, XY_pyfx, XY_hffx, i, fxxh, bc
- L_py = 鼠标抖动范围(0)
- U_py = 鼠标抖动范围(1)
- X_py = 生成随机数(L_py, U_py)
- Y_py = 生成随机数(L_py, U_py)
- fxxh = 偏移方向
- XY_pyfx = 获取偏移方向(fxxh)
- XY_hffx = 获取恢复方向(fxxh)
- Dim X_py_d, Y_py_d, X_py_z, Y_py_z
- Dim X_py_d_j, Y_py_d_j
- For i = 1 To 2
- If i = 1 Then
- XY_fx = XY_pyfx
- Else
- XY_fx = XY_hffx
- End If
- If XY_fx(0) = "0" Then
- X_py = 0
- End If
- If XY_fx(1) = "0" Then
- Y_py = 0
- End If
- X_py_z = 0
- Y_py_z = 0
- Do
- If X_py_z = X_py And Y_py_z = Y_py Then
- Exit Do
- End If
- If X_py_z < X_py And Y_py_z < Y_py Then
- bc = 生成随机数(1, 3)
- ElseIf X_py_z < X_py Then
- bc = 1
- ElseIf Y_py_z < Y_py Then
- bc = 2
- End If
- If bc = 1 Then
- X_py_d = 1
- Y_py_d = 0
- ElseIf bc = 2 Then
- X_py_d = 0
- Y_py_d = 1
- ElseIf bc = 3 Then
- X_py_d = 1
- Y_py_d = 1
- Else
- X_py_d = 0
- Y_py_d = 0
- End If
- X_py_d_j = X_py_d
- Y_py_d_j = Y_py_d
- If XY_fx(0) <> "0" Then
- X_py_d = CLng(XY_fx(0) & X_py_d)
- End If
- If XY_fx(1) <> "0" Then
- Y_py_d = CLng(XY_fx(1) & Y_py_d)
- End If
- MoveR X_py_d, Y_py_d
- Delay 生成随机数(鼠标抖动间隔(0), 鼠标抖动间隔(1))
- X_py_z = X_py_z + X_py_d_j
- Y_py_z = Y_py_z + Y_py_d_j
- Loop
- Next
- End Function
- Function 鼠标抖动(鼠标抖动范围,鼠标抖动次数,鼠标抖动间隔)
- Dim xy_ret, x, y
- If 鼠标抖动范围(0) = 0 And 鼠标抖动范围(1) = 0 Then
- Exit Function
- End If
- Dim 方向个数, 已执行方向, 方向
- 方向个数 = 8
- 已执行方向 = ""
- For 生成随机数(鼠标抖动次数(0),鼠标抖动次数(1))
- Do
- 方向 = 生成随机数(1, 方向个数)
- If InStr(已执行方向, 方向) = 0 Then
- Exit Do
- End If
- Loop
- Call 鼠标随机相对偏移(鼠标抖动范围,鼠标抖动间隔, 方向)
- 已执行方向 = 已执行方向 & 方向
- If Len(已执行方向) = 方向个数 Then
- 已执行方向 = ""
- End If
- Next
- End Function
- Function 获取偏移方向(方向序号)
- If 方向序号 = 1 Then
- 获取偏移方向 = Array("-", "0")
- ElseIf 方向序号 = 2 Then
- 获取偏移方向 = Array("+", "0")
- ElseIf 方向序号 = 3 Then
- 获取偏移方向 = Array("0", "-")
- ElseIf 方向序号 = 4 Then
- 获取偏移方向 = Array("0", "+")
- ElseIf 方向序号 = 5 Then
- 获取偏移方向 = Array("-", "-")
- ElseIf 方向序号 = 6 Then
- 获取偏移方向 = Array("+", "-")
- ElseIf 方向序号 = 7 Then
- 获取偏移方向 = Array("-", "+")
- ElseIf 方向序号 = 8 Then
- 获取偏移方向 = Array("+", "+")
- End If
- End Function
- Function 获取恢复方向(偏移方向)
- If 偏移方向 = 1 Then
- 获取恢复方向 = Array("+", "0")
- ElseIf 偏移方向 = 2 Then
- 获取恢复方向 = Array("-", "0")
- ElseIf 偏移方向 = 3 Then
- 获取恢复方向 = Array("0", "+")
- ElseIf 偏移方向 = 4 Then
- 获取恢复方向 = Array("0", "-")
- ElseIf 偏移方向 = 5 Then
- 获取恢复方向 = Array("+", "+")
- ElseIf 偏移方向 = 6 Then
- 获取恢复方向 = Array("-", "+")
- ElseIf 偏移方向 = 7 Then
- 获取恢复方向 = Array("+", "-")
- ElseIf 偏移方向 = 8 Then
- 获取恢复方向 = Array("-", "-")
- End If
- End Function
- Function 生成随机数(num1, num2)
- Dim L, U
- If num1 > num2 Then
- L = num2
- U = num1
- Else
- L = num1
- U = num2
- End If
- Randomize
- 生成随机数 = CLng(Int((U - L + 1) * Rnd + L))
- End Function
复制代码 源文件:- QMScript.zip (, 下载次数:537)
|