超有趣练手题----用影刀轻松破解消消乐验证码~
评论
收藏

超有趣练手题----用影刀轻松破解消消乐验证码~

经验分享
shendeju
2025-03-28 14:20·浏览量:547
shendeju
发布于 2025-03-28 11:22更新于 2025-03-28 14:20547浏览

有兴趣的可以尝试自己先去试试看,挺有意思的小验证码。


测试网址: https://gt4.geetest.com/




接下来是我的破解过程:

一、先看结果:


二、再看影刀流程


三、步骤详解

1、首先刷新抓包,可以看到图像的二维列表:   "ques": [[2, 0, 0], [1, 2, 2], [3, 3, 1]],


2、二话不说,监听它,再正则提取它(正则是懒得转json了,还要去除一些字符)



3、获取到的二维列表,跟gpt要代码

测试了一下,可行。直接影刀插入python代码段:


from xbot import print

def is_valid(board):
    # 检查是否存在三个相同的数字在行、列上
    for row in board:
        for i in range(1, len(row) - 1):
            if row[i] == row[i-1] == row[i+1]:
                return True
    for col in range(len(board[0])):
        for i in range(1, len(board) - 1):
            if board[i][col] == board[i-1][col] == board[i+1][col]:
                return True
    return False

def swap_elements(board, pos1, pos2):
    board[pos1[0]][pos1[1]], board[pos2[0]][pos2[1]] = board[pos2[0]][pos2[1]], board[pos1[0]][pos1[1]]

def find_swappable_elements(board):
    for i in range(len(board)):
        for j in range(len(board[0])):
            # 横向交换
            if j + 1 < len(board[0]):
                swap_elements(board, (i, j), (i, j+1))
                if is_valid(board):
                    return (i, j), (i, j+1)
                # 还原
                swap_elements(board, (i, j), (i, j+1))
                
            # 纵向交换
            if i + 1 < len(board):
                swap_elements(board, (i, j), (i+1, j))
                if is_valid(board):
                    return (i, j), (i+1, j)
                # 还原
                swap_elements(board, (i, j), (i+1, j))
    
    return None

# 示例
board = 矩阵
result = find_swappable_elements(board)
print(result)

4、result就是要交换的两个下标了。获取9图的相似元素组对象,然后三个一组,也转成一样的二维列表;


5、直接设置2个图片元素的变量,用result的下标,从图像二维列表中把元素定位出来,再依次点击。

结果当然是过啦!

眼睛还没反应过来,验证码已经点完了。


收藏10
全部评论1
最新
发布评论
评论