**本文主要提供思路和流程,不提供代码**
1.解决debugger和怎么进行算法调试
1.debugger解决
第一个debugger通过右键一律不在此暂停解决
第二个通过在控制台输入以下hook eval的代码便可解决
var eval_ = window.eval;
window.eval = function(x){
eval_(x.replace("debugger;"," ; "));
};
window.eval.toString = eval_.toString;
2.如何调试
1.将控制台的日志错误输出关闭,不然一直输出报错的日志
2.在解决完debugger后的环境下,在新代码段创建一段新的脚本,主要两部分,ts和对应的js,这里是说第一次生成的214位cookis,运行后可以看到document里面是有设置值的,这个值便是有用的214位cookies
3.至此便可以开始调试了。
2.如何插桩
1.搜索.call找到进入vm的地方
2.搜索<= 63在此处进行插桩,通过日志进行分析,这里日志参数可以自己增加,看自己需要哪些
3.根据日志分析各个参数(里面需要分析的参数有点多,这里只说一部分)
1.生成35个数组的八位数组如何生成
根据日志可以看到8位数组是通过这个180的大数组生成的
180的数组生成: 由r2mKa那一串函数生成的对象中的60位数组取得第23位
在_$h6.length == 180的时候打上条件断点,通过一步步跟,可以发现8位数组是经过4个数组经过运算生成的,
2.通过日志分析4个数组的生成流程:
ts['cd']生成的大数组经过运算生成数组array_155,array_1121
array_155经过$_ts['cp'][3]生成的16位数组进行更新
然后将array_155按照固定的算法拆分为4个数组和对应的index,并将r2mKa生成的60位数组按照index进行替换
到这4位数组就生成了通过_$mY这个函数就可以运行得出,
得到8位数组经过和array_1121经固定的运算可以得到35位数组
4.关于406长度的数组
通过搜索 = 0 : 0, 找到这个位置打上断点
发现跟203位的对比,多了几个数组,分别是
前缀为1,长度为36的数组,应该是鼠标轨迹生成的,后面测试发现可以固定
前缀为0,长度为101的数组,应该是浏览器指纹生成,也可以固定
前缀为4,长度为13或14不固定,也可以固定
最后整合为一个304位的数组,再经过转化变成406长度的数组,转化步骤跟214的差不多
5.搜索所需要的参数生成
1.日志生成断点位置
在open和send函数打上断点,也是在<= 63这个地方插桩
2.参数生成步骤
里面这些函数名称自己根据日志分析,跟生成cookie过程差不多
array_23生成的步骤可以在这里打上断点一步步跟
temp_time 的生成跟前缀为10的长度18的数组后面那部分规则是一样的文章来源:https://www.toymoban.com/news/detail-767912.html
params = _$nZ(array_72)
array_72 = array_4 + array_68 //array_4 是有array_68经过一个函数生成
array_68 = 之前生成的array35中取第二个 + array_32.length+ array_32
array_32 = array_25和 35中取第17 生成的21位数组
array_25 = 11+ array_23.length+ array_23
array_23 = []
_$aP(array_23,48);
_$cm(array_23,1)
_$dv(array_23,array_35_10); // 35中取第10 生成
_$aP(array_23,array_35_19); // 35中取第19 生成
_$$K(array_23,temp_time)
url_params_num = _$fU(url_params.toUpperCase())
_$aP(array_23,url_params_num)
_$gq(array_23,0,49)
文章来源地址https://www.toymoban.com/news/detail-767912.html
到了这里,关于瑞数6代vmp算法还原流程笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!