声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵犯了您的合法权益,请告知,我将及时更正、删除,谢谢。邮箱地址:lc1139411732@163.com
本专题属于系列文章,可以根据个人主页或者专栏,找到网易易盾验证码其他文章,好啦,话不多说开干! 本期讲解fp参数生成!
此链接为cb加密的,因为在注册滑块的时候这都是必要参数,有兴趣可以一起看看。
1.跟栈定位加密位置
根据下图所示,可以看出来是一步一步传过来的,_0x3459c2 ->_0x53f0a1,在往上面追栈你会发现就追不到了,那个我们换一种方式,直接追fingerprint,最终可以追到,参数最终是有window['gdxidpyhxde']得来的。
1.1 清缓存-校验定位结果可以看出来,我们是对的。
2.追window['gdxidpyhxde']生成位置,对于这种我们可以采用hook的方式直接追到生成位置。
2.1逐步跟栈后发现fp的加密结果是在_0x5d8d21返回的
2.2hook代码如下
(function() {
//严谨模式 检查所有错误
'use strict';
var cookieTemp = "";
Object.defineProperty(window, 'gdxidpyhxde', {
set: function(val) {
debugger
console.log('Hook捕获到cookie设置->', val);
cookieTemp = val;
return val;
},
get: function()
{
return cookieTemp;
}
});
})();
3.扣代码,本地生成,我采用的是将整体的代码都复制出来,然后再2.1截图箭头的位置改成一下方式,在用变量将整个方法导出。
3.1根据观察,加密结果是被一个完整的大函数包裹的,那么我们直接将整个大方法抠出来即可
3.2扣除字符串加密替换的函数和字符串大列表,然后将咱们刚刚抠出来的大函数放入到一个自执行当中包裹。
3.3找到fp生成位置,然后将其位置进行修改,直接拿到生成好位置,改为return即可。
var jiami_fp
function _0x5f35c8() {
_0x5d8d21 = _0x5d8d21 + _0x397aee[0x39] + _0x137de3
return _0x5d8d21
}jiami_fp = _0x5f35c8
4.--- 开始补环境-----
4.1报错缺少window
window = global;
4.2报错缺少cookie,经调试后会发现,此函数根本没用到,所以直接删除
4.3报错缺少cookie ,还是一样,直接删除
4.4 上面屏蔽的就是这个方法,所以在这里就直接给他也屏蔽掉就好了,在浏览器里面她也是个空值undefined
4.5出结果-此时已经得出了结果了,但是此事这个是没法用的。还需要补环境
大坑一: 这里会调用 not_exist_host变量但是在浏览器里面就是域名
直接把域名加上
大坑二,环境检测-检测完环境会返回一个数组,我们这里直接改成和浏览器一样的
最终测试成功