后缀生成的位置
数组转的
(其中数组的前四位是根据一个数值生成的
可以根据直接搜素这四个值进行定位, 如图3)
由此可见长数组是由两个数组合成的,其中中间有两个值是某处生成的
其中短数组1的生成位置
1 长数组1的生成
长数组1
的生成位置(根据图5 [8,3,7,7,15] 进行断点定位,可以找到长数组1
是由一个长数组2
和短数组2
生成生成, 具体算法在这里函数里面实现, [8,3,7,7,15]一个界面固定)
1.1短数组2的生成
1.1.1 短数组2
是由短数组3
加上时间戳,并对产生的随机数进行多次异或得到
多次异或的算法如下图,其中框住的部分是时间戳转的数组
定位
短数组3
发现日志不够清晰,图9是结果,可以看到根据<=12进行定位,搜素<=12定位发现是进入如图11位置的参数,打印出来如图9(可以直接搜],"ceil"
快速定位)在界面不刷新的情况下这个数组是固定的,由此推出这个数组是界面生成的值(这个值是根据界面来的值,在本站是固定的)
定位短数组3
发现是在索引54的位置 进行生成的
[ 181, 74, 161, 217, 196, 110, 224, 190, 48, 3, 209, 70, 90, 223, 76, 10 ]
这个数组,在ck的生成逻辑中有是固定值 即取的数组中16位索引
_$kH[31][16]
由此也可以看出这块逻辑和ck高度相似
1.2长数组2的生成
长数组2的定位
通过_$cz:58_$jd:3
或者],16,13]
进行定位,上二图进行举例
找到生成的初始数组。根据_$$Y:67_$mS:4
进行定位,如下图