当前位置:   article > 正文

瑞数6代vmp算法还原流程笔记,406位的cookie及请求后缀

瑞数6

**本文主要提供思路和流程,不提供代码**

1.解决debugger和怎么进行算法调试

        1.debugger解决

        第一个debugger通过右键一律不在此暂停解决

        第二个通过在控制台输入以下hook eval的代码便可解决

  1. var eval_ = window.eval;
  2. window.eval = function(x){
  3. eval_(x.replace("debugger;"," ; "));
  4. };
  5. 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的数组后面那部分规则是一样的

  1. params = _$nZ(array_72)
  2. array_72 = array_4 + array_68 //array_4 是有array_68经过一个函数生成
  3. array_68 = 之前生成的array35中取第二个 + array_32.length+ array_32
  4. array_32 = array_25和 35中取第17 生成的21位数组
  5. array_25 = 11+ array_23.length+ array_23
  6. array_23 = []
  7. _$aP(array_23,48);
  8. _$cm(array_23,1)
  9. _$dv(array_23,array_35_10); // 35中取第10 生成
  10. _$aP(array_23,array_35_19); // 35中取第19 生成
  11. _$$K(array_23,temp_time)
  12. url_params_num = _$fU(url_params.toUpperCase())
  13. _$aP(array_23,url_params_num)
  14. _$gq(array_23,0,49)
        

                

       

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号