• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[老狼] [老狼][源码分享]----过安卓2x2滑动验证----被城管追赶的第四天(... [复制链接]

1#
说明:

  • 写给看得懂的人
  • 本源码为17年所写【已失效,仅工学习】,语法不够简练凑合看

    已知条件:

    • 滑动验证为2x2【图1】
    • 需按示意线路滑动【图2、图3虚线示意】
    • 滑动方向未知【图2、图3红色三角形】


    代码思路构思:

    • 每个点有三个滑动方向的可能性【图4、图5】
    • 应滑动验证示意会带红色三角形故取12个指定坐标用于判断路径【图6】



    代码一览:
    Import "ShanHai.lua" //先下载山海插件,并放在插件目录 plugin 下
    Dim 易码账号,易码密码,手机号,sid,token,wy,a,cs,验证码
    易码账号 = "*"
    易码密码 = "*"
    sid = "2555" //SID是项目ID,项目ID 请自行在官网查看
    登录易码
    '雷电1.8.6 360*640*240
    Dim 账号密码,分割,账号,密码,开始时间,手机打码累计次数
    //*******************
    Dim 点坐标X = Array(120, 275, 120, 275)'需要修改
    Dim 点坐标Y=Array(375,375,525,525)'需要修改
    Dim 是否相等,数量,数组X,数组Y,判断,最终,正,反
    Dim 圆1X=Array(170,155,120)'需要修改
    Dim 圆1Y=Array(375,410,425)'需要修改
    Dim 圆2X=Array(220,235,270)'需要修改
    Dim 圆2Y=Array(375,410,425)'需要修改
    Dim 圆3X=Array(120,155,170)'需要修改
    Dim 圆3Y=Array(475,490,525)'需要修改
    Dim 圆4X=Array(270,235,220)'需要修改
    Dim 圆4Y=Array(475,490,525)'需要修改
    //******************************
    Do
    开始时间=ShanHai.GetUpTime()
    Sys.ClearAppCache "com.huajiao"
    RunApp "com.huajiao"
    延迟 15
    RunApp "com.huajiao",".main.MainActivity"
    同步点击 324,597, "我的"
    是否出现特殊页面 38, 489, "4755FE", "登录页面", true, 38, 489
    判断指定点颜色 192, 273, "441EF1", "登录-新浪"
    账号密码=读取一行()
    分割 = Split(账号密码, "----")
    账号 = 分割(0)
    密码 = 分割(1)
    点击并输入 104, 411, 账号, "输出账号"
    点击并输入 104, 474, 密码, "输出密码"
    同步点击 180, 550, "登录"
    延迟 3
    Do
    If GetPixelColor(123, 374) = "888888" Then
    TracePrint "出现验证码,准备过验证"
    过验证码
    Else
    Exit Do
    End If
    Loop
    是否出现特殊页面 257, 446, "0082FF", "确定", true, 257, 446
    RunApp "com.huajiao",".user.bind.AccoutSafeActivity"'设置
    延迟 2
    If GetPixelColor(330, 205) = "703AFA" Then
    手机打码累计次数=0
    Do
    If 同步点击(330, 205, "绑定") = True Then
    TracePrint "准备绑定手机"
    Call 获取手机号()
    点击并输入 153, 333, 手机号, "输出手机号"
    点击 225,399, "获取验证码"
    Call 获取验证码()
    点击 128,412,"验证码"
    点击并输入 128,412,验证码,"验证码"
    Call 拉黑释放验证码()
    同步点击 190, 512, "绑定"
    If GetPixelColor(190,441) = "703AFA" Then
    TracePrint "手机号用过,准备重新绑定"
    同步点击 190, 441, "我知道了"
    点击 28,76, "手机号用过----返回手机绑定页面"
    Else
    If 成功获取验证码 = True and GetPixelColor(330, 205) <> "703AFA" Then
    TracePrint "绑定成功"
    记录读取行数
    TracePrint "本次耗时"&ShanHai.GetUpTime()-开始时间&"秒~~~~~~~~~~~~~~~~~~~~~~~~~~"
    Exit Do
    End If
    End If
    Else
    TracePrint "判断为网络问题,退出账号重启"
    Exit Do
    End If
    Loop
    Else
    TracePrint "无需绑定手机,准备进入下一个号"
    End If
    Loop
    Sub 点击并输入(x, y, 输入内容, 提示)
    TracePrint 提示&"----"&输入内容
    Tap x, y
    延迟 2
    InputText 输入内容
    End Sub
    Sub 判断指定点颜色(x, y, 颜色,提示)
    Dim 没找到次数=0
    Do
    Dim 当前颜色= GetPixelColor(X, Y, 0)
    TracePrint X&":"& Y&"当前颜色"&当前颜色
    If 当前颜色 = 颜色 Then
    TracePrint "符合"&提示
    Exit Do
    End If
    没找到次数 = 没找到次数 + 1
    TracePrint "没找到次数"& 没找到次数
    If 没找到次数 = 25 Then
    Exit Do
    End If
    延迟 1.5
    Loop
    End Sub
    Function 是否出现特殊页面(x,y,颜色,提示,是否点击,点击X,点击Y)
    If GetPixelColor(x,y)= 颜色 Then
    TracePrint "出现特殊页面"&"----"&提示
    是否出现特殊页面 = True
    If 是否点击 = True Then
    同步点击 点击X,点击Y,提示
    End If
    Else
    TracePrint "继续下一步,未出现"&"----"&提示
    是否出现特殊页面=False
    End If
    End Function
    Function 同步点击(X, Y, 提示)
    Dim kn=0
    Dim 当前颜色= GetPixelColor(X, Y, 0)
    Tap X, Y
    Do
    If GetPixelColor(X, Y, 0) <> 当前颜色 Then
    TracePrint X&","& Y&"----"&提示&"----点击完毕,页面完成跳转"
    延迟 2
    Exit Function
    Else
    TracePrint "等待----"&提示&"----跳转中"
    kn = kn + 1
    If kn = 10 Then
    TracePrint "尝试纠正 再次点击"
    Tap X, Y
    同步点击=True
    End If
    If kn = 30 Then
    TracePrint "超时退出"
    同步点击=False
    Exit Function
    End If
    End If
    延迟 1
    Loop
    End Function
    Sub 点击(x, y, 提示)
    TracePrint 提示
    Tap x, y
    延迟 1
    End Sub
    Sub 延迟(秒)
    Delay 秒*1000
    End Sub
    Dim 微博帐号记录,j,Var1
    Function 读取一行()
    微博帐号记录 = File.ReadLines(GetTempDir()&"/微博帐号记录.txt")
    If 微博帐号记录(0) = null Then
    j = 0
    Else
    j = 微博帐号记录(0)
    End If
    TracePrint "本次读取第----"&(j+1)&"行"
    Var1 = File.ReadLines(GetTempDir()&"/微博帐号.txt")
    If Int(j) > Int(UBOUND(Var1)) Then
    Do
    TracePrint "已经是最后一行了"
    Delay 5000
    Loop
    End If
    读取一行 = Var1(j)
    j=j+1
    //记录读取行数
    End Function
    Sub 记录读取行数()
    Dir.Delete GetTempDir()&"/微博帐号记录.txt"
    Call File.Write (GetTempDir() & "/微博帐号记录.txt",j)
    End Sub
    Function 登录易码()
    TracePrint "易码登陆函数",易码账号,易码密码
    If 易码账号 = "" or 易码密码 = "" Then
    TracePrint "易码账号或密码为空",3000
    End If
    Do //登陆易码
    wy = "http://api.51ym.me/UserInterface.aspx?action=login&username=" & 易码账号 & "&password=" & 易码密码
    Dim cs= url.get(wy)
    If cs Then
    Dim 登陆 = Split (cs,"|")
    token = 登陆(1)
    TracePrint "易码登陆成功" & token ,3000
    Exit Do
    ElseIf cs = "1005" Then
    TracePrint "用户名或密码错误", 3000
    ElseIf cs = "1006" then
    TracePrint "用户名不能为空", 3000
    ElseIf cs = "1007" Then
    TracePrint "密码不能为空",3000
    ElseIf cs = "1009" Then
    TracePrint "账户已被禁用", 3000
    EndScript
    End If
    Delay 3000
    Loop
    End Function
    Function 获取手机号() //易码登陆函数
    手机打码累计次数 = 手机打码累计次数 + 1
    TracePrint "本账号第"&手机打码累计次数&"次获取手机码"
    Do //获取手机号
    TracePrint "准备获取手机号"
    wy = "http://api.51ym.me/UserInterface.aspx?action=getmobile&itemid=" & sid & "&token=" & token&"&coderid=1286"&"&country=1"&"&isp=1"
    cs= url.get(wy)
    If cs Then
    If cs = "1008" Then
    TracePrint "账号余额不足", 3000
    ElseIf cs = "2004" Then
    TracePrint "暂时没有可用的号码,三秒钟之后再次获取", 3000
    ElseIf cs = "2005" Then
    TracePrint "获取号码数量已达到上限",3000
    ElseIf InStr(1, cs, "success") > 0 Then
    Dim 手机 = Split (cs,"|")
    手机号 = 手机(1)
    TracePrint "获取手机号码" & 手机号 & "成功", 1000
    Delay 1000
    Exit Do
    End If
    Else
    TracePrint "暂时未连接到易码服务器,三秒后再次尝试",3000
    End If
    Delay 3000
    Loop
    End Function
    Dim 成功获取验证码
    Function 获取验证码()
    成功获取验证码=False
    TracePrint "获取验证码函数"
    Dim q = 0
    Do
    wy = "http://api.51ym.me/UserInterface.aspx?action=getsms&mobile=" & 手机号 & "&itemid=" & sid & "&token=" & token & "&*release=1"
    cs = URL.Get(wy)
    If cs Then
    If cs = "3001" Then
    TracePrint "正在获取验证码,将在"& 20 - q & "秒后超时",3000
    Delay 3000
    q = q + 1
    ElseIf InStr(1, cs, "success") > 0 Then
    TracePrint cs,1000
    dim c = shanhai.RegexFind(cs, "%d%d%d%d%d%d") //%d%d%d%d%d%d 是6位验证码,根据自己的需求酌情调整验证码位数
    验证码 = c(0)
    TracePrint 验证码,1000
    成功获取验证码=True
    Exit Do
    Else
    TracePrint "连接易码服务器异常,3秒后再次尝试", 3000
    End If
    If q > 20 Then
    成功获取验证码=False
    TracePrint "获取验证码超时", 3000
    点击 28,76, "超时----返回手机绑定页面"
    Delay 1000
    End If
    End If
    Loop
    End Function
    Function 拉黑释放验证码()
    Dim wy1 = url.get("http://api.51ym.me/UserInterface.aspx?action=addignore&mobile="& 手机号 &"&itemid=" & sid &"&token=" & token)
    Dim wy2 = url.get("http://api.51ym.me/UserInterface.aspx?action=release&mobile="& 手机号 &"&itemid="& sid &"&token="&token)
    If wy1 = "success" Then
    TracePrint "拉黑成功", 1000
    Delay 1000
    End If
    If wy2 = "success" Then
    TracePrint "释放成功", 1000
    Delay 1000
    End If
    End Function
    Sub 过验证码()
    If 判断连接线数量("圆1") = 1 Then
    最终= 判断方向 ("圆1")
    End If
    If 判断连接线数量("圆2") = 1 Then
    最终=最终& 判断方向 ("圆2")
    End If
    If 判断连接线数量("圆3") = 1 Then
    最终=最终&判断方向 ("圆3")
    End If
    If 判断连接线数量("圆4") = 1 Then
    最终=最终&判断方向 ("圆4")
    End If
    正 = Mid(最终, 1, 2) & Mid(最终, 4, 1) & Mid(最终, 3, 1)
    TracePrint 正
    滑 正
    延迟 2


    延迟 5


    反 = Mid(最终, 3, 2) & Mid(最终, 2, 1) & Mid(最终, 1, 1)
    TracePrint 反
    滑 反
    延迟 5

    End Sub
    Sub 滑(参数)
    Dim 坐标1 = Mid(参数, 1, 1)
    Dim 坐标2 = Mid(参数, 2, 1)
    Dim 坐标3 = Mid(参数, 3, 1)
    Dim 坐标4= Mid(参数, 4, 1)
    TouchDown 点坐标X (坐标1-1), 点坐标Y (坐标1-1), 1
    TouchMove 点坐标X (坐标2-1), 点坐标Y (坐标2-1), 1, 500
    TouchMove 点坐标X (坐标3-1), 点坐标Y (坐标3-1), 1, 500
    TouchMove 点坐标X (坐标4-1), 点坐标Y (坐标4-1), 1, 500
    TouchUp 1
    End Sub
    Function 判断连接线数量(参数)
    数量=0
    Select Case 参数
    Case "圆1"
    数组X = 圆1X
    数组Y = 圆1Y
    Case "圆2"
    数组X = 圆2X
    数组Y = 圆2Y
    Case "圆3"
    数组X = 圆3X
    数组Y = 圆3Y
    Case "圆4"
    数组X = 圆4X
    数组Y = 圆4Y
    End Select
    For i = 0 To UBOUND(圆1X)
    是否相等 = CmpColor(数组X (i),数组Y(i),"FFFFFF-101010",0.9)
    If 是否相等 > -1 Then
    //TracePrint "非黑色"
    Else
    // TracePrint "黑色"
    数量=数量+1
    End If
    Next
    判断连接线数量= 数量
    End Function
    Function 判断方向(参数)
    If 参数 = "圆1" Then
    For i = 0 To UBOUND(圆1X)
    是否相等 = CmpColor(圆1X(i),圆1Y(i),"FFFFFF-101010",0.9)
    If 是否相等 > -1 Then
    // TracePrint "非黑色"
    Else
    //TracePrint "黑色"
    If 圆1X(i) = 170 Then '需要修改
    判断 = "2"
    End If
    If 圆1X(i) = 155 Then '需要修改
    判断 = "4"
    End If
    If 圆1X(i) = 120 Then '需要修改
    判断= "3"
    End If
    End If
    判断方向="1"& 判断
    Next
    End If
    If 参数 = "圆2" Then
    For i = 0 To UBOUND(圆2X)
    是否相等 = CmpColor(圆2X(i),圆2Y(i),"FFFFFF-101010",0.9)
    If 是否相等 > -1 Then
    // TracePrint "非黑色"
    Else
    //TracePrint "黑色"
    If 圆2X(i) = 220 Then '需要修改
    判断= "1"
    End If
    If 圆2X(i) = 235 Then '需要修改
    判断 = "3"
    End If
    If 圆2X(i) = 270 Then '需要修改
    判断 = "4"
    End If
    End If
    判断方向="2"& 判断
    Next
    End If
    If 参数 = "圆3" Then
    For i = 0 To UBOUND(圆3X)
    是否相等 = CmpColor(圆3X(i),圆3Y(i),"FFFFFF-101010",0.9)
    If 是否相等 > -1 Then
    // TracePrint "非黑色"
    Else
    //TracePrint "黑色"
    If 圆3X(i) = 120 Then '需要修改
    判断 = "1"
    End If
    If 圆3X(i) = 155 Then '需要修改
    判断 = "2"
    End If
    If 圆3X(i) = 170 Then '需要修改
    判断 = "4"
    End If
    End If
    Next
    判断方向="3"& 判断
    End If
    If 参数 = "圆4" Then
    For i = 0 To UBOUND(圆4X)
    是否相等 = CmpColor(圆4X(i),圆4Y(i),"FFFFFF-101010",0.9)
    If 是否相等 > -1 Then
    // TracePrint "非黑色"
    Else
    //TracePrint "黑色"
    If 圆4X(i) = 270 Then '需要修改
    判断 = "2"
    End If
    If 圆4X(i) = 235 Then '需要修改
    判断 = "1"
    End If
    If 圆4X(i) = 220 Then '需要修改
    判断 = "3"
    End If
    End If
    判断方向="4"& 判断
    Next
    End If
    TracePrint "**************"
    End Function

最后编辑瑞祥幽冥狼 最后编辑于 2022-02-23 16:00:13
本主题由 超级版主 瑞祥幽冥狼 于 2022/2/28 17:47:19 执行 审核帖子 操作
收 徒 索 引 ← ← ← ← ← ← ← ← ← ← 点 击

个 人 Q Q 1 : 1 2 2 3 1 1 6 6 1 8[将满]
个 人 Q Q 2 : 6 1 7 0 9 5 5 4 3[可加]
2#

看看看看

3#

学习了

4#

沙发,支持大佬

5#

666666666

6#

瞧瞧

7#

前来学习

8#

学习学习一下

9#


10#

好像没看到过这种验证方式....

11#

45

好好好好好好好好好

12#

看看

13#

被城管追赶的第四天

噗噗个噗
14#

沙发,支持大佬

15#
16#

我来学习了,大佬

17#

这个 我来试试,看起来很强大

18#


19#

怎一个帅子, 了得

20#


<font color="Magenta">想象</font><font color="Red">之中</font>,<font color="Lime">别人</font><font color="YellowGreen">与我</font><font color="Lime">没有</font><font color="DarkOrchid">不同</font>
发新话题 回复该主题