仅限用于学习!所以不贴图了, 纯文字记录
boss动态加密,但是算法还是一样的,zp_token通过基本的断点进去,可以看到一个大数组,一个string的去尾的拓展,还有一个数组的倒置。
把解密函数b扣出来,可以知道通过简单地转化就可以得到原来的字符。 最后生成的149位字符串,
由 4位字符串 + ‘b’+ 144 位字符串组成, 其中4位字符串,是直接在大数组里面,需要找到对应的index, 144位字符串通过 boss自定义的函数
_b64_encode 传递106位数组转化而来, 所以主要就是106位数组如何生成的问题, 打断点,调试会发现,106位数组由75位数组与31位数组组合而成
现在重点是75位数组与31位数组的形成。
31位数组:31位数组由 4位数组与26位数组组成,而4位数组也就是上面提到的那个4位数组,26位数组的话由两个12位数组组成,第一个就是它的域名
"w.zhipin.com" 转化为的12位数组 ,另外一个呢又车到了一个44位的数组生成,44位的数组呢就是传递进去的参数进行了数组的变换而来的,当然这里的
变化又扯到了那个4位数组,就是4位数组的下标的排序,进行列切换,行取值,得到。 这个44位数组通过了与运算得到了12位的数组
31位数组 = 4+4位数组+12+12位数组+12+12位数组
76位数组 由 56位数组与18位数组生成。
18位的数组由 18*40位的数组生成(这个是由算法随机生成的)
56位的数组由 44位数组 与 10位数组生成
10位数组由时间戳生成 也就是传递的参数的前十位
44位数组也就是上面用到的44位数组
说道这里,就没了, 没了, boss的算法也就没了 我也不晓得最主要的那个4位数组是随机生成的还是怎么地,不知道那边的校验是怎样的,当然多次ip访问会出验证码,
或者直接封了你的ip,我都遇到了, 理论上4位数组的生成可以随便?不可能校验那4位数组,只是会校验4位数组与生成的106位数组分别分割后的数组是否加密后的结果一致。
boss里面检查浏览器指纹什么的,看了一遍就是为了计算数值然后算总和然后判断 走分支还是主流程,很多地方也就是这样判断的,补环境也是很好的,我就是想看看里面扯了些啥