最新公告
  • 欢迎您光临小酒资源吧,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 【按键精灵】根据滑块验证的特征破解斗鱼客户端滑动验证码

    【按键精灵】根据滑块验证的特征破解斗鱼客户端滑动验证码 最后编辑:2020-09-01
    增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

    应该是独创吧,反正没人跟我一样,就是速度有点慢(1分钟左右),而且成功率不是百分百,分享一下,百度了一下,五花八门,大多数讲的不详细,要么太高深,人工智能训练,灰度化图片,按键精灵好像不能够实现吧,自己研究研究吧。

    QQ图片20190217141045.gif

    先找到一个有滑动验证码的app,百度了一下,就是斗鱼了。
    斗鱼登陆界面->忘记密码里面->手机号找回

    QQ截图20190217122806.png

    分析特征,找到思路再来写代码。
    粗略说下思路再仔细分解,1。分析要滑动的图片的高度,就是纵坐标位置,2,分析要滑动的图片的横位置,3,空缺的位置,4,滑
    第一步确认要滑动的图片的最上面的Y坐标。最下面的Y坐标,就是高度,以确定要滑动的图片中线在哪里,找中心就是确定要滑动的图片具体的位置在哪里。
    模拟器分辨率设置如图,首先科普一下X坐标是横着的,Y坐标是纵的,最左上角的坐标是0,0。先确定整个图片的大小,等下要用,左上角是140,381,右下角是399,540,得出结论,这个图片高度是540-381=159。

    QQ截图20190217124103.png

    QQ截图20190217123805.png

    QQ截图20190217124042.png

    找到要移动图片的规律,我找到的规律就是图片周围有点黑。有点黑怎么用脚本表达呢?用到按键精灵两个命令综合运用,GetPixelColor和ColorToRGB。GetPixelColor是获取指定颜色,ColorToRGB是分解颜色成RGB,黑色的RGB是#000000。
    接下来写一个函数
    [Asm] 纯文本查看 复制代码
    Function sumc(x, y)
    // 获取指定点颜色
    rColor = GetPixelColor(x, y, 0)
    //分解成RGB三个值
    ColorToRGB rColor, r, g, b
    //计算三个值得和,后面获取很多的点的分解成RGB三个值和对比
    res= r+g+b
    End Function

    这个函数的内容是计算某个点的RGB的三个值和
    接下来找到要移动的图片的上限在哪里,就是Y坐标值
    可以从图片中看出来这个图片的总是在按钮的正上方,横坐标是160,遍历这条线上所有的点的RBG值,和最小的地方就是要移动的图片的最上面的地方(大多数是最上面,有时候会找的是最下方,这就是为什么不会百分百成功,等下会做下判断),这条线多长呢?就是最开始找的图片Y范围,整个图片的左上角位置的Y坐标到右下角的Y坐标值。381到540。

    QQ截图20190217125620.png

    写代码

    [Asm] 纯文本查看 复制代码
    //取最上面的点的RGB三个点的值
    sumc (160, 381)
    mix = res
    For i = 381 To 540
    sumc 160, i
    // 依次对比,比取第一点还小,就更新一下最小值,遍历完成就找到了最小值。
    If mix > res Then

    mix = res
    // 找打的最小的值对应的i值就是要找的最黑的地方的Y坐标值,也就是要移动的图片最上面的地方
    mixr = i
    End If
    Next

    Dim mtop= mixr
    TracePrint "要移动的图片的上限Y坐标"&mtop

    第二步,图片最上面的坐标找到,接下来找最下面,最下面,就好找点,不会遍历381到540的范围,而是根据测量最下边的Y的坐标范围是最上边的Y坐标+40到最上边的Y坐标+120,(如果上一步刚找到的坐标是最下边,那么最上边的Y的坐标范围是最上边的Y坐标-120到最上边的Y坐标-40)

    QQ截图20190217132037.png

    QQ截图20190217132339.png

    写代码
    [Asm] 纯文本查看 复制代码
    fx1 = mtop +40
    fx2 = mtop+120

    sumc (160, fx1)
    mix = res

    For i = fx1 To fx2
    sumc (160, i)
    If mix > res Then
    mix = res
    mixr = i
    End If

    Next
    TracePrint "要移动的图片的下限Y坐标"&mixr
    Dim mlow = mixr

    mali = Fix((mtop+mlow)/2)
    TracePrint "要移动的图片中线坐标Y坐标"&mali

    现在求到要移动的图片中线坐标Y坐标,在求这条中线上要移动的图片最左边X坐标。要移动的图片最左边X坐标的范围是140到140+30=170的范围内,在这个范围内找最黑的地方,这个绝对没错的,140是最开始测得的整个图片左上角的横坐标X的值,170看图就知道了。

    QQ截图20190217134022.png

    代码如下
    [Asm] 纯文本查看 复制代码
    sunc (140, mali)
    mix = res
    For i = 140 To 170
    sunc (i,mali)
    If mix > res Then
    mix = res
    mixr = i
    End If
    Next
    h1=mixr
    TracePrint "要移动的图片最左边X坐标"&mixr

    第三步,找到空缺位置,空缺图片的X位置在140+50=190到399的位置,在这个范围内找最黑的地方,(这个地方可能会出错,也就是可能会识别要移动的图片突出的地方,这个范围可能会识别到要滑动的图片突出的地方,或者找到空缺的最右边的地方,这些例外几率比较小,暂时没有找打什么好的解决办法)

    QQ截图20190217135249.png

    写代码
    [Asm] 纯文本查看 复制代码
    sumc (190, mali)
    mix = res
    For i = 190 To 399
    sumc (i,mali)
    If mix > res Then
    mix = res
    mixr = i
    End If
    Next
    h2=mixr
    TracePrint "空缺的位置的最左边X坐标"&mixr

    最后一步就是移动,按键精灵最简单的Swipe命令式不能使用的,app会判断是机器操作还是人工操作,因为Swipe命令滑动的过程不是一个人能滑出来的,很快很匀速。所以要用到紫猫插件的超级滑动命令,所有的参数都要用上,才能正真的识别成人工滑动的

    QQ截图20190217140832.png

    [Asm] 纯文本查看 复制代码
    moveto = h2-h1
    TracePrint "要移动的距离为"&moveto

    zm.Swipe (154, 825, 154+moveto, 825,200,3,-100,-1,true)

    总结一下一下,所有代码,代码量不多,写的有点仓促,乱乱的,封装一下函数,变量名改一下比较好看一点。亲测能够成功,有点问题还不知道怎么解决,可以集大家的智慧,提供下思路,给我指点一下也可以,所以不能说百分百成功,总之功能能够实现,很开心哈。
    [Asm] 纯文本查看 复制代码
    Import "zm.luae"
    Dim x,y,rColor,res,mix,mixr,r,g,b,fx1,fx2, mali,h2,h1,moveto,网络时间
    Function sumc(x, y)
    // 获取指定点颜色
    rColor = GetPixelColor(x, y, 0)
    //分解成RGB三个值
    ColorToRGB rColor, r, g, b
    //计算三个值得和,后面获取很多的点的分解成RGB三个值和对比
    res= r+g+b
    End Function

    网络时间=GetNetworkTime()
    Traceprint 网络时间

    //取最上面的点的RGB三个点的值
    sumc (160, 381)
    mix = res
    For i = 381 To 540
    sumc 160, i
    // 依次对比,比取第一点还小,就更新一下最小值,遍历完成就找到了最小值。
    If mix > res Then
    mix = res
    // 找打的最小的值对应的i值就是要找的最黑的地方的Y坐标值,也就是要移动的图片最上面的地方
    mixr = i
    End If
    Next

    Dim mtop= mixr
    TracePrint "要移动的图片的上限Y坐标"&mixr
    fx1 = mtop +40
    fx2 = mtop+120
    sumc (160, fx1)
    mix = res
    For i = fx1 To fx2
    sumc (160, i)
    If mix > res Then
    mix = res
    mixr = i
    End If

    Next
    TracePrint "要移动的图片的下限Y坐标"&mixr
    Dim mlow = mixr
    mali = Fix((mtop+mlow)/2)
    TracePrint "要移动的图片中线坐标Y坐标"&mali

    sumc (140, mali)
    mix = res
    For i = 140 To 170
    sumc (i,mali)
    If mix > res Then
    mix = res
    mixr = i
    End If
    Next
    h1=mixr
    TracePrint "要移动的图片最左边X坐标"&mixr

    sumc (190, mali)
    mix = res
    For i = 190 To 399
    sumc (i,mali)
    If mix > res Then
    mix = res
    mixr = i
    End If
    Next
    h2=mixr
    TracePrint "空缺的位置的最左边X坐标"&mixr

    moveto = h2-h1
    TracePrint "要移动的距离为"&moveto
    zm.Swipe (167, 575, 167+moveto, 575,200,3,-100,-1,true)
    网络时间=GetNetworkTime()
    Traceprint 网络时间

    QQ截图20190217135249.png

    猜你在找

    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!603313839@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!

    小酒资源吧 » 【按键精灵】根据滑块验证的特征破解斗鱼客户端滑动验证码

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    小酒资源吧
    一个高级程序员模板开发平台
    • 2020-09-01Hi,初次和大家见面了,请多关照!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系客服
    • 2187会员总数(位)
    • 4391资源总数(个)
    • 7本周发布(个)
    • 0 今日发布(个)
    • 334稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
  • 2020 XiaoJiu8.cn - & WordPress Theme. All rights reserved 黔ICP备17003460号-5

  • XML地图 | 站长导航
         
    升级SVIP尊享更多特权立即升级