电话咨询
19922193247
最近看到有很多大佬都有逆向数美的滑块验证码,本着学徒的心,本菜鸟也跟着他们的脚步把数美滑块的逻辑走一遍,好了直接上干货
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)
轨迹检测的不严格,所以随便百度一个轨迹生成的组成一段轨迹即可
下面直接放结果截图
温馨提示:我们将在您提交信息后的30分钟内与您取得联系,请您保持电话通畅,谢谢!