!!!本文章只用于学习交流。勿非法使用
流程
第一步:请求sign接口获取dfp参数
第二步:请求login.action接口看是否需要弹出滑块,如果需要就要获取token
第三步:请求sbox_init_key接口获取sig,sid,sr三个参数
第四步:请求nitpage接口获取滑块数据
第五步:模拟轨迹参数请求verify接口获取token
iqiyi大概流程就是这样里面涉及的坑非常多。需要耐心调试。
2.dfp参数的获取加密参数主要是dim和sig
dim是base64加密一个数组,数组成员里涉及canvas和canvas的配置和一些cookie
sign就是一个256加密
这个加密接口不难 就不做过多分析,慢慢调试就行
3,
获取si个,sid,sr的时候需要secure这个参数 ,这个参数是由web+版本号+rsa(aes秘钥生成需要的随机数)+hmac256(web+版本号++rsa(aes秘钥生成需要的随机数))
里面涉及两个非常重要的随机数 不管是aes的key还是hmac256的key都是由着两个随机数生成的
4,
请求滑块数据需要这两个参数 ,第二个就是web+版本号+上一步返回的sid
,第一个参数是由
aeskey和hmackey是由前面两个随机数生成的
返回回来的数据需要用aes解密才能看见滑块的链接和偏移
5 .图片的还原
{“code”:“A00000”,“msg”:“成功”,“data”:{“autoResult”:null,“captchaType”:“slidecode”,“initData”:{“token”:“888a419a8bda40ccb0cbc8443f719b5f”,“autoResult”:null,“captchaType”:“slidecode”,“sourceType”:“unUse”,“secondVerify”:null,“secondToken”:null,“secodVerify”:null,“secodToken”:null,“imageBgUrl”:"/api/outer/image/bg/888a419a8bda40ccb0cbc8443f719b5f9376d91051224cca8af41b3e67e4d963.jpg",“imageBlockOffset”:[[{“t1”:13,“t2”:0},{“t1”:7,“t2”:0},{“t1”:15,“t2”:0},{“t1”:2,“t2”:0},{“t1”:9,“t2”:0},{“t1”:12,“t2”:0},{“t1”:10,“t2”:0},{“t1”:5,“t2”:0},{“t1”:14,“t2”:0},{“t1”:6,“t2”:0},{“t1”:19,“t2”:0},{“t1”:1,“t2”:0},{“t1”:17,“t2”:0},{“t1”:11,“t2”:0},{“t1”:4,“t2”:0},{“t1”:8,“t2”:0},{“t1”:18,“t2”:0},{“t1”:0,“t2”:0},{“t1”:16,“t2”:0},{“t1”:3,“t2”:0}],[{“t1”:3,“t2”:1},{“t1”:2,“t2”:1},{“t1”:19,“t2”:1},{“t1”:8,“t2”:1},{“t1”:5,“t2”:1},{“t1”:10,“t2”:1},{“t1”:7,“t2”:1},{“t1”:9,“t2”:1},{“t1”:11,“t2”:1},{“t1”:18,“t2”:1},{“t1”:14,“t2”:1},{“t1”:12,“t2”:1},{“t1”:4,“t2”:1},{“t1”:0,“t2”:1},{“t1”:6,“t2”:1},{“t1”:13,“t2”:1},{“t1”:1,“t2”:1},{“t1”:17,“t2”:1},{“t1”:15,“t2”:1},{“t1”:16,“t2”:1}]],“imageWidth”:290,“imageHeight”:170,“imageBlockPerWidth”:14,“imageBlockPerHeight”:85,“iconUrl”:"/api/outer/image/icon/888a419a8bda40ccb0cbc8443f719b5f9376d91051224cca8af41b3e67e4d963.png",“iconWidth”:56,“iconHeight”:56,“iconYOffset”:28},“availableCaptchaList”:[]}}
上面aes解开大概是这个json数据 里面有img的url,img的还原的偏移,等等
数据里的imageBlockOffset"需要经过
js解密才能看见真实还原的坐标
[42, 14, 136, 220, 164, 206, 192, 122, 108, 178, 234, 0, 276, 262, 70, 248, 28, 150, 56, 84, 140, 56, 84, 28, 42, 154, 112, 0, 262, 182, 196, 126, 224, 210, 70, 14, 98, 168, 276, 238]
前20位是还原上半部的后20位是还原下半部的
还原后大概是这样的
6,,模拟轨迹提交参数
加密方法和上面基本一样主要是轨迹生成 ,这里就不做更多的分析了
7,
其他没什么大问题了,坑就在于两个随机数和照片还原和轨迹的偏移
返回A00000就是成功。
————————————————
版权声明:本文为CSDN博主「肥宅胖」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41927995/java/article/details/105068719