数美滑块 js逆向

注:本篇博客仅供学习使用,请勿用做其他商业用途,如有侵权,请联系本菜鸟
最近看到有很多大佬都有逆向数美的滑块验证码,本着学徒的心,本菜鸟也跟着他们的脚步把数美滑块的逻辑走一遍,好了直接上干货
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的,所以我们要进行缩放一下在进行缺口识别
在这里插入图片描述
图片缩放代码

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)

轨迹检测的不严格,所以随便百度一个轨迹生成的组成一段轨迹即可
下面直接放结果截图
在这里插入图片描述
好了 下班 下班

如有疑问 请私信本小菜鸟

写在最后:本篇博客仅供学习使用,请勿用做其他商业用途,如有侵权,请联系本菜鸟

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值