提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:目标网址:aHR0cHM6Ly9sb2dpbi50YW9iYW8uY29tLw==
例如:本文就介绍了网址登录的基础内容,仅供学习参考。
提示:仅供学习参考,仅供学习参考
一、关键点1
O = _++,
Ne = Pe[O],
x = 255 & Ne,
O = _++,
Ne = Pe[O],
Ae = 255 & Ne,
O = _++,
Ne = Pe[O],
E = 255 & Ne,
z = x >> 2,
Si = 1667
Pe是用来生成226的大数组,Pe由四部分组成,自己调试分析顺序
Ae = Ae.concat(T);
Ae = Ae.concat(E);
Ae = Ae.concat(V);
Ae = Ae.concat(Y);
二、关键点2
1、Y数组是定值,不同类型Y值不同(水果和普通)
//以下是水果的Y
Y = [14, 2, 32, 65, 64, 9, 8, 238, 238, 160, 160, 36, 65, 9, 8]
2、T
3、E
4、V
有点多先不忙分析
三、关键点3
Pe的加密分析
本文采用扣代码的方式,代码中Si可能会更新变动,但是加密逻辑不变
起始点:
w = Re,
Re = Pe.length,
T = He,
Si = 26819
在以上位置下断点,然后F9单步调试
在本地写以下框架去扣代码:
switch (31 & Si) {
case wi:
swith(Ei){
case Ei:
break;
default:
console.log(wi-Ei) //能帮助快速定位
}
break;
}
示例:
扣到能生成值就行,大概一百来行
上面的T、E、V都可以用这种办法生成,包括98长度的大数组,祝大家都能扣出来。
总结
本文讲了扣代码的方法流程以及一些需要注意的地方,有不懂的地方可以联系我。