geetest滑块(三)

发布时间:2026/9/4 17:49:13
geetest滑块(三) h参数分析先分析o参数userresponse参数passtime参数aa参数h9s9参数rp参数l参数h参数u参数分析现在已经生成了两次w还差最后一个滑块的滑块的js文件和前两次的不一样是slide.7.9.3.js但是代码流程差不多基本是一样的ast解混淆后还是定位w这里是h uh参数分析代码上面直接能看到h参数l V[encrypt](yt[stringify](o), r[$_CCEp]()) h m[$_FEu](l)先分析o参数在上面可以定位到o是怎么生成的userresponse参数传递了两个值t和challengechallenge已经见过很多次了这里不多说是什么值了主要是t参数查找t是怎么生成的这里很明了就能看出来_是获取的x坐标然后取整获取到的passtime参数这个值生成是一个时间戳相减n[$_CEDS] $_Im() - n[$_CHJt]function $_Im() { return new Date()[getTime](); }后面时间戳生成的位置可以理解成这个时间戳是滑动滑块到松手的时间这个时间需要和轨迹对应起来aa参数查找堆栈可以看到l n[$_CICC][$_BBEl](n[$_CICC][$_FDd](), n[$_CJQ][c], n[$_CJQ][s])里面有三个参数n[$_CICC][$_FDd]()、n[$_CJQ][c]、n[$_CJQ][s]这里后面两个分别就是c和s主要看第一个参数跟踪堆栈可以看到这里是处理鼠标轨迹的地方这里却啥拿啥就行最后生成的值不知道对不对就拿浏览器的值对比一下l也是缺啥拿啥h9s9参数这个参数值其实可以写死跟踪定位到Rbfk(StJC[EMVm(52)]() Rbfk(Rbfk[EMVm(52)]())) EMVm(38);这里三个参数都是固定的所以返回值肯定也是固定的这里前两个和之前一样都是获取源代码然后经过计算最后得到一个数字里面没有取环境也没有随机数所以写死就行也就不需要扣了后面还有一个随机数生成的这里需要补一下rp参数o[rp] X(i[gt] i[challenge][slice](0, 32) o[passtime]);这个很简单了l参数l V[encrypt](yt[stringify](o), r[$_CCEp]())h参数h m[$_FEu](l)l和h补一下就行没什么难的u参数分析u r[$_CCDh]()跟进去可以看到就是一个加密随机数的方法this[$_CCEp](t)跟进去可以看到rt就是随机数最主要的是轨迹有可能会出现返回{success: 0, message: forbidden}的情况这种一般都是轨迹不行稍微修改修改就可以不算是很难如果说返回{success: 0, message: fail}一般都是图片滑块的匹配有问题或者算法扣的不对这里有一个坑返回的图片和识别好的图片x开始计算的位置是不一样的所以识别出x的位置后需要减一个差值这里就不多说了手动计算一下图片的缺口距离就知道了最后成功的话会返回一个validate的值