人类移动鼠标很少直线移动,而是方向变化很大。 一个简单的测试方法是打开一些画图,选择一个宽度为 1px 的画笔,然后以中等速度绘制一些线条。
市面上常用的鼠标控制API,类似pyautogui等,鼠标的移动都可以轻而易举的判断非人类。一个网页都可以判断鼠标行为是否人类,游戏想判断此类行为也是轻而易举。
我实际使用双头键鼠盒子后,发现盒子提供的MoveTo所谓的随机曲线鼠标移动,仅仅是一条极有规律的平滑的曲线移动,这种鼠标移动行为也是极容易被检测到。(下图:使用双头盒子MoveTo连续同坐标画线10次)
着手改进双头盒子鼠标移动算法,先看下效果,已经和人类移动鼠标非常类似。
# 初始化vid,pid,屏幕分辨率
mouse = Mouse(0xC113, 0x0113, 1280, 720)
mouse.move(100, 450)
mouse.left_down()
mouse.move(800, 450)
mouse.left_up()
调整下参数,G是重力的大小,影响曲线的浮动。 W是风力的大小,也会影响曲线的浮动。 M是最大步长,也称为速度阈值。会影响鼠标的移动速度。
mouse = Mouse(0xC113, 0x0113, 1280, 720)
mouse.move(100, 400)
mouse.left_down()
mouse.move(800, 400, W=9)
mouse.left_up()
评论0