瑞数4代超详细补环境与代码

本文详细描述了如何通过现有教程的骨架进行补充,重点讲解了如何在JavaScript环境中补全缺失的window对象及其相关属性,包括使用Proxy和处理事件监听器。作者还分享了补全浏览器环境的具体步骤和技巧。
摘要由CSDN通过智能技术生成

其实关于网上瑞数的教程已经很多了,数不胜数。那为啥我还要写呢?主要有以下几个方面:

大家的教程都是一种骨架,何为骨架?就是给你一个大的方向,其中的坑需要自己一个一个去踩,遇到不会的然后还要去网上找相应的解决办法,问别人问多了别人也没时间,懒得搭理你,大家都很忙。

所以出于以上以及自己做一个技术笔记的理念出发,有了此文!具体的骨架大家都会,csdn一大把问章教学,这里分享下具体的补环境过程和最后框架来补,环境不会补全,自己要举一反三!

首先咱们打开一个无痕模式的浏览器,并钩上脚本断点,如图:

图片

具体的网址也在图中,然后刷新网址,你会看到一个js文件,然后你惦记图里的小框里的那个按钮,会进去index.html文件,也就是图里的html

图片

我们把这段js代码全选,然后复制到咱们编译器,我这里是pycharm

图片

回到上面的html文件中,把图中的两个框里的也放在编译器里去:

图片

一个是自执行的函数,一个很长的变量,一起放进去后如下:

图片

因为我们需要导出cookie,写一个导出的函数即可!接下来开始补环境!

我们直接运行的这个js文件,会出现window未定义,补上。

window = global

在我们正式补环境之前,需要固定住一份静态的代码,方便后面好调试,操作如下我们把index文件右键,点击本地替换保存。然后搜索.call

图片

打上断点,如果打不上,你需要刷新一下就能打上断点了。此时我们把代理脚本放进去:

// 代理器封装
function getEnv(proxy_array) {
    for(var i=0; i<proxy_array.length; i++){
        handler = `{\n
            get: function(target, property, receiver) {\n
                   console.log('方法:get',' 对象:${proxy_array[i]}',' 属性:',property,' 属性类型:',typeof property,' 属性值类型:',typeof target[property]);
                   return target[property];
            },
            set: function(target, property, value, receiver){\n
                    console.log('方法:set',' 对象:${proxy_array[i]}',' 属性:',property,' 属性类型:',typeof property,' 属性值类型:',typeof target[property]);
                    return Reflect.set(...arguments);
            }
        }`;
        eval(`
            try{\n
                ${proxy_array[i]};\n
                ${proxy_array[i]} = new Proxy(${proxy_array[i]},${handler});
            }catch(e){\n
                ${proxy_array[i]}={};\n
                ${proxy_array[i]} = new Proxy(${proxy_array[i]},${handler});
            }
        `)
    }
}
 proxy_array = ['window', 'document', 'location', 'navigator', 'history','screen','target' ]
 getEnv(proxy_array)

运行会报window.top未定义,它的值其实就是window;补上window.top=window即可。注意代码的格式:

图片

然后运行看看报啥错:说是缺少了这个标签

图片

看看什么意思:所以是要创建一个html的元素,什么元素?

图片

我们输出元素即可:在此之前我们还是要从前面的call方法进去,这是4代的入口,我们断点段在了call方法的时候,点击进入当前函数调用那个按钮

图片

进去了后,你会发现进入了一个vm文件中去了,每个人的都不一样!

图片

我们回到上面的报错,输入以下代码看看返回的是真么东东,

document = {
    createElement : function (res){
        console.log('这个东东获取的值是莫西:',res)
        if(res == 'div'){
            return div
        }
    }

图片

返回的是div标签,标签在html是一个对象。所以我们补div对象就行。

图片

说这个不是函数,此时我们去到刚刚进去的vm文件,直接搜索:

图片

图片

很明显我们刚刚创建的div标签的值是对的,仔细看看这两行代码:

_$n0 = _$v8[_$By[9]]('div')
          , _$so = _$n0[_$By[51]]('i');

这里的意思是_$no是div,而_$so等于div然后getElementsByTagName创建一个i标签,补上代码前看看返回什么,类型是对象,所以返回对象就行

图片

div = {
    getElementsByTagName: function (val) {
        if (val === 'i') {
            return {
                length: 0
            }
        }
    }
}

继续看吐出来的是啥错误:

图片

其实对浏览器开发不是很熟悉的,这里我们最好去浏览器环境看一下,哪些udndefind是它本身,哪些是需要补的

图片

所以很明显了,我们要补的就是事件监听器,然后看报错:

图片

去搜这个看看在哪

图片

图片

发现没返回什么值,直接给它一个空函数即可!

window.addEventListener = function(){
    // console.log(arguments)
}

然后就这样一直一直补!直到出了值。说实话这补起来的真的累人,我们直接扔进补环境框架秒杀它。

图片

好,4代的思路大概就是如此,5和6也差不太多!最后懒得补了,直接copy了一份好友的js代码,然后放星球了!框架生成的代码暂不放!星球:凡人修仙传

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很抱歉,作为AI语言模型,我无法编写代码。但我可以给你提供SLIC超像素分割的基本流程和算法思路,以及一些参考代码链接。 SLIC超像素分割的基本流程: 1. 初始化:确定超像素大小和超像素数量,将图像划分为n个相等大小的网格 2. 选择种子点:在每个网格内选择一个像素作为种子点,计算种子点的颜色值和位置。 3. 生长:以种子点为中心,搜索周围像素,计算像素与种子点的距离(颜色距离和空间距离),将距离小于一定阈值的像素归为同一超像素。 4. 更新种子点:计算新的超像素的平均颜色和位置作为新的种子点。 5. 重复3和4步骤,直到收敛。 SLIC算法思路: SLIC算法是一种基于K-means聚类的超像素分割算法。它的主要思想是将图像划分为相等大小的网格,然后在每个网格内选择一个像素作为种子点,以种子点为中心进行生长,将距离小于一定阈值的像素归为同一超像素。同时,SLIC算法结合了颜色信息和空间信息,考虑了像素之间的位置关系,使得生成的超像素更加紧凑、规则。 参考代码链接: 1. SLIC算法matlab实现:https://github.com/zhoushiwei/SLIC-Superpixels 2. SLIC算法C++实现:https://github.com/PSMM/SLIC-Superpixels 3. SLIC算法python实现:https://github.com/rockkingjy/SLIC-Superpixels-Python 以上是SLIC超像素分割的基本流程和算法思路,以及一些参考代码链接。希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值