声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
有相关问题请第一时间头像私信联系我删除博客!
分析
主要就是blackbox他是由5个循环每个循环去检测指纹环境,jsdom是过不了的我拿之前补227的代码直接跑了环境刚好全部齐了就不分析补环境部分。先初始化一下关键环境。
window._fmOpt={ "display": "popup", "partner": "kujia", "appName": "kujia_web", "fmb": true, "initialTime": 1724396614695, "token": "kujia-1724396615484-4b0b702373864", "v": "", "sdkVersion": "3.9.2", "closeIcon": 0, "closeMask": 0, "bind": false, "blackBoxType": 1 }
先拿到token然后拿9个指纹值去生成blackbox。前两个就大致思路这样。
图片还原网上有源码我这就引出一下别人的的代码地址:同盾底图还原_同盾验证码逆向底图还原-CSDN博客
def fy(img, bgImageSplitSequence, img_new): ut = [] for i in bgImageSplitSequence: ut.append(int(i, 16)) image = Image.open(img) s = Image.new("RGBA", (320, 180)) height_half = 90 for inx in range(16): c = inx % 8 * 40 u = height_half if inx > 7 else 0 box = (c, u, c + 40, u + 90) l_ = image.crop(box=(c, u, c + 40, u + 90)) box2 = (ut[inx] % 8 * 40, 90 if ut[inx] > 7 else 0) s.paste(l_, box=(ut[inx] % 8 * 40, 90 if ut[inx] > 7 else 0)) s.save(img_new)
最后扣代码验证就行了。
function verify(data,x,trace,useTime,sessionId){ slideY=data['sliderY'] userAnswer=Math.round(x / 1) + window.QQ00QO('|10|') + new Date().getTime() mouseInfo=window.QQQO0O(0,0,trace, slideY) requestType=3 validateCodeObj=JSON.stringify(data) data={ requestType: requestType, validateCodeObj: validateCodeObj, userAnswer: userAnswer, mouseInfo: mouseInfo, sensorInfo: undefined, usedTime: useTime } console.log(data) blackBox=window.Q000QO(token) return window.Q00Q0o("",data,undefined,blackBox) }