js逆向之补环境常⽤代码//第⼀种补环境的⽅法
let test1 = {
name:"⼩红"
};
test = new Proxy(test1,{
get(target,key){
console.log("获取了",key + "属性");
return target[key];
}
})
test.name
/
/实战应⽤(注释部分的内容倒着看)
//然后继续代理,按照这种的思路。继续的寻,不但代理对象,获取⾥⾯的属性或者⽅法。然后检测其返回值。
//特点是每次只能检测⼀个,所以,补完每⼀个级别的对象之后,都需要重新的进⾏检测
canvas = {}
let document = {
createElement:function (val) {
if (val = "canvas"){
return canvas
//到浏览器中看⼀看需要输⼊哪些内容
}
}
};
//返回的是⼀个document对象,那么就设置⼀个空对象,看⼀看从这个空对象⾥⾯取了哪些值
js arguments//到确是环境中缺失的属性之后,然后再函数中不传参数,但是打印参数。通过这样的⽅式来获取环境中使⽤的参数// let document = {
//    createElement:function () {
//        console.log(arguments)
//    }
// };
document = new Proxy(document,{
get(target,key){
console.log("获取了",key + "属性");
return target[key];
}
})
//就可以检测这⾥⾯调⽤了document中的哪些属性
//进阶的使⽤
//吐环境
function proxy(proxy_array){
for(let i = 0;i<proxy_array;i++){
eval(proxy_array[i] + ' = new Proxy(' + proxy_array[i] + ',{ ' +
'get(target,key){ ' +
'debugger;' +
'console.log("====================")'+
'console.log("获取了",'+ proxy_array[i] + ' 的key属性"); ' +
'console.log("====================")'+
'return target[key]; }')
}
}
//常⽤的proxy_array
var proxy_array = ["window","document","location","navigator"]
proxy(proxy_array)
//如果需要补XMLHttpRequest、ActiveXObject,直接给空对象不⽤管
//可以⽤typeof 判断数据类型
/
/第⼆种补环境的⽅法
//代码可以混淆的部分形参、实参、变量名等可以变的东西
//最终的结果不会混淆
//所以,规避代码中的变量名和⽅法。需要补的内容是浏览器中有的东西,⽽不是代码中有的东西//所以动态的代码,通过补环境是⼀个很好的⽅法
//检测⾳频指纹的代码
//等待页⾯加载后的调⽤
//this 改写成that  然后写⼀个定时器。然后就可以实现⾃动的执⾏

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。