新闻动态

s美滑块 js逆向

2022-04-22

最近看到有很多大佬都有逆向数美的滑块验证码,本着学徒的心,本菜鸟也跟着他们的脚步把数美滑块的逻辑走一遍,好了直接上干货
1.流程
1.1请求register这个图片信息的接口,返回bg,fg两个图片以及一个rid参数,其中rid参数在后面验证滑块的时候有用到

在这里插入图片描述

1.2验证请求fverify,除开下图标注的参数,其他的均可固定,其中
rid:前面请求图片返回的
se:滑动时间加密的
tf:滑动轨迹加密
qn:缺口位置加密

在这里插入图片描述

2.逻辑详情分析
直接进入倒数第二个堆栈

在这里插入图片描述

在此处我们看到_0x30e197变量中,基本上包括了fverify接口中所需的所有参数,但是此时已经被赋值,所以,我们只有全文检索_0x30e197,发现全文只有两处含有这个变量

在这里插入图片描述

 

跟进_0x30e197发现是个函数,那我们就再次跟进这个this[_0x5b45f2(0x1e2)]函数

在这里插入图片描述

 

跟进后发现_0x137a72函数为具体加密的位置,而_0x137a72中的加密为DES加密

在这里插入图片描述

 

在这里插入图片描述

其中qn,tf,se参数加密的key看下图

在这里插入图片描述

在这里插入图片描述

这里的DES加密,我们直接用Python代码实现

def pad(b):
    """
    块填充
    """
    block_size = 8
    while len(b) % block_size:
        b += b'\0'
    return b

def get_encrypt_content(message, key, flag):
    """
    接口参数的加密、解密
    """
    des_obj = des(key.encode(), mode=ECB)
    if flag:
        content = pad(str(message).replace(' ', '').encode())
        return base64.b64encode(des_obj.encrypt(content)).decode('utf-8')
    else:
        return des_obj.decrypt(base64.b64decode(message)).decode('utf-8')

需要注意的是:原图片的大小是600x300px的 而在网页上渲染的是300x150px的,所以我们要进行缩放一下在进行缺口识别

缺口识别 我们可以选择 云码打码(www.jfbym.com)这个平台,他们基于机器学习算法模型,接口速度快,准确率还可以.我们拿着图片去请求他们接口,直接返回距离像素,

再做处理.

在这里插入图片描述

def change_Image(filein,fileout,width,height):
    '''
    filein: 输入图片
    fileout: 输出图片
    width: 输出图片宽度
    height:输出图片高度
    '''

    type = 'png'
    img = Image.open(filein)
    out = img.resize((width, height),Image.ANTIALIAS) 
    out.save(fileout, type)

 

轨迹检测的不严格,所以随便百度一个轨迹生成的组成一段轨迹即可
下面直接放结果截图

在这里插入图片描述

在线充值在线咨询在线电话返回顶部

技术支持

电话咨询

19922193247

超10000+ 企业选择我们,快速体验!

温馨提示:我们将在您提交信息后的30分钟内与您取得联系,请您保持电话通畅,谢谢!