js逆向的另类思路扣代码是怎样的
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,本篇文章为大家展示了js逆向的另类思路扣代码是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。经常js分析的人来说有些网站检测浏览器指纹是很常见的事,但是
千家信息网最后更新 2025年02月07日js逆向的另类思路扣代码是怎样的
本篇文章为大家展示了js逆向的另类思路扣代码是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
经常js分析的人来说有些网站检测浏览器指纹是很常见的事,但是我们一点一点分析是很费时间,费脑筋的。
我们扣代码的结果是我们要调用他的加密或解密或某个值的算法,当我们把他的算法扣下来执行,正常情况下是没问题的,但是如果他计算了浏览器指纹,那基本上你除了完整的分析别无他法,今天我们来讲一个hook劫持。当然我只讲原理,具体你们自己研究琢磨。
首先介绍一下这个es6的特性:Proxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。
简单来说就是我们可以完全代理某个对象,基于这个对象的所有操作都会被拦截下来,但是他的内部对象操作拦不下来,比如:
a={b:function(){return "123"}}
a = new Proxy(a, {
get: function(target, key, receiver) {
console.log(target, key, receiver);
return target[key];
},
set: function(target, key, value, receiver) {
console.log(target, key, value, receiver);
target[key] = value;
}
});
当我们调用a.b 就用过代理拦截下来,但是
当我们:a.b.c我们发现.c并没有拦截到,那是因为.c是属于b对象,并不能嵌套拦截,如果有需要我们可以嵌套:比如
a={b:{c:function(){return "123"}}}
a = new Proxy(a, {
get: function(target, key, receiver) {
console.log(target, key, receiver);
if(target[key] instanceof Object){
return new Proxy(target[key],{
get:function(a,b,c){
return a[b];
},set:function(a,b,c,d){
a[b] = c;
}
})
}
return target[key];
},
set: function(target, key, value, receiver) {
console.log(target, key, value, receiver);
target[key] = value;
}
});
这样的话就可以嵌套,看到这里你们是不是明白了,
假如他有一段代码我们抠出来要看他是不是有指纹计算,我们可以这样写
window = {};
window = new Proxy(window, {
get: function(target, key, receiver) {
console.log(target, key, receiver);
return target[key];
},
set: function(target, key, value, receiver) {
console.log(target, key, value, receiver);
target[key] = value;
}
});
navigator= {};
navigator= new Proxy(navigator, {
get: function(target, key, receiver) {
console.log(target, key, receiver);
return target[key];
},
set: function(target, key, value, receiver) {
console.log(target, key, value, receiver);
target[key] = value;
}
});
我们伪造window对象然后它里面只要是基于window的操作我们都会拦截下来,然后处理,看到这里大家都明白了,但是我们开个脑洞基于这个proxy的更有趣的玩法,既然他能拦截所有操作,那我们就可以基于这个伪造一个真实的浏览器环境,不过实现起来工作量那就不小了,只能是缺啥补啥。
上述内容就是js逆向的另类思路扣代码是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
对象
代码
指纹
浏览器
分析
浏览
另类
思路
内容
就是
技能
知识
算法
代理
有趣
简明
简明扼要
这样的话
函数
原理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
信息集成软件开发服务
虚拟主机 多个数据库
sql数据库名称怎么查看
汽车网络安全生产
戴尔服务器可以做系统吗
网络技术提升英语课堂
西城区综合软件开发口碑推荐
数据库安全防护好处
网络安全隐患防范
网络安全系语10条
中国5g专利数据库公司
国内知名的网络技术公司
腾越互联网科技有限公司
山东服务器硬盘哪里买
高端网络安全建设有哪些
软件开发 名言
关于软件开发电视剧
前端软件开发与实现专业
饥荒服务器怎么手动重启
学校网络安全管理责任分解
日本vps服务器
软件开发好还是ui设计师好
网络安全写的好的公众号
海曙专业软件开发公司
vs是用什么软件开发的
郑州app软件开发的费用
天夏科技互联网医疗
创建数据库的命名命令是
java数据库关闭结果集
租海外服务器价格