HG 新闻 RS5 环境点

前言:海guan局的RS5代 环境检测点相对于药监J 要多了不少

本文主要是说下海guan局新闻页的RS5检测环境

网址 base64: aHR0cDovL3d3dy5jdXN0b21zLmdvdi5jbi9jdXN0b21zL3h3ZmIzNC8zMDI0MjUvaW5kZXguaHRtbA==
在这里插入图片描述

本文说下重点的地方

一、window下的一些函数检测

挂上window代理 会发现检测了很多函数

贴上一些 剩余的对照下 浏览器下环境 补就行了 没有的就不要补了
在这里插入图片描述

其中有个比较重要的是window.matchMedia函数 检测了一些参数返回的bool

window.matchMedia = function matchMedia(x){
    if(x === '(any-pointer: fine )'){
        return {
            matches: true,
            media: "(any-pointer: fine)",
            onchange: null,
        }
    }else if(x === '(any-pointer: coarse )'){
        return {
            matches: false,
            media: "(any-pointer: coarse)",
            onchange: null
        }
    }else if(x === '(any-pointer: none )'){
        return {
            matches: false,
            media: '(any-pointer: none)',
            onchange: null
        }
    }else if (x==='(any-pointer )'){
        return {
            matches: true,
            media: "(any-pointer)",
            onchange: null
        }
    }else if (x==='(any-hover: hover )'){
        return {
            matches: true,
            media: '(any-hover: hover )',
            onchange: null
        }
    }else if(x === '(any-hover: on-demand )'){
        return {
            matches: false,
            media: '(any-hover: on-demand )',
            onchange: null
        }
    }else if(x==='(any-hover: none )'){
        return {
            matches: false,
            media: '(any-hover: none )',
            onchange: null
        }
    }else if(x === '(any-hover )'){
        return {
            matches: true,
            media: '(any-hover )',
            onchange: null
        }
    }else if (x==='(color-gamut: srgb )'){
        return {
            matches: true,
            media: '(color-gamut: srgb )',
            onchange: null
        }
    }else if(x === '(color-gamut: p3 )'){
        return {
            matches: false,
            media: '(color-gamut: p3 )',
            onchange: null
        }
    }else if(x === '(color-gamut: rec2020 )'){
        return {
            matches: false,
            media: '(color-gamut: rec2020 )',
            onchange: null
        }
    }else if(x=== '(color-gamut )'){
        return {
            matches: true,
            media: '(color-gamut )',
            onchange: null
        }
    }


};

还有个就是window.WebSocket函数

window['WebSocket'] = function WebSocket(){
    throw DOMException('Failed to construct \'WebSocket\': The URL \'itsgonnafail\' is invalid.')
};

二、document.createElement方法 里面的 audio video 标签里面的canPlayType方法检测

        else if(tagName == 'audio'){
            var audio = {};
            audio['canPlayType'] = function (x){
                if (x === "audio/x-m4a;audio/aac;"){
                    return 'maybe'
                }
                else {
                    return 'probably'
                }
            };
            audio['canPlayType'].toString = ()=>'function canPlayType() { [native code] }';
            return audio
        }

三、原型属性检测

navigator下的原型属性webdriver检测

代码运行过程中 会使用 以下两次方法

Object.getOwnPropertyDescriptor(navigator,"webdriver")
Object.getOwnPropertyDescriptor(navigator.__proto__,"webdriver")

这里是获取navigator的原型下的描述属性

所以我们要把webdriver定义再其原型上

正常情况下我们补的时候 描述属性是这样的
在这里插入图片描述

在浏览器 环境下 是没有value属性的这个要注意!

在这里插入图片描述

后续也会判断 描述属性下是否有value
在这里插入图片描述
接着又是判断get方法 是不是一个函数 并且检测了它的toString方法 是否包含native code

在这里插入图片描述
toString检测
在这里插入图片描述
在浏览器环境下 是这样的

'function get webdriver() { [native code] }'

四、点击事件对象的target 属性里面的getBoundingClientRect函数

这个函数会返回你当前点击节点的对应坐标位置

getBoundingClientRect = ()=>{return {
                    "x": 454.078125,
                    "y": 736.21875,
                    "width": 570,
                    "height": 26,
                    "top": 736.21875,
                    "right": 1024.078125,
                    "bottom": 762.21875,
                    "left": 454.078125
                }

这样就行了

其他比较重要的就是load事件之后的 canvas webgl 里面的东西了 自己补补吧

大概比较重要的就这么多

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值