js逆向的另类思路扣代码是怎样的
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,本篇文章为大家展示了js逆向的另类思路扣代码是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。经常js分析的人来说有些网站检测浏览器指纹是很常见的事,但是
千家信息网最后更新 2024年11月28日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安全错误
数据库的锁怎样保障安全
网络安全求稳
龙口商城软件开发公司有哪些
mysql怎样导出数据库
2019网络安全公司名单
服务器托管咨询
选择什么样的数据库好
c# 数据库连接自动释放
美国网络安全股票价格
网络安全11不准
软件开发与设计工资
东土科技和工业互联网
mysql数据库怎么结束
日本固定网络技术
网络技术科技分享
战地3服务器网址
服务器搭建需要多大硬盘
通路数据库能覆盖多少
网络技术有趣视频
c 数据库连接类
数据库cdm图
网络安全资料
网络安全电子小报模板无字
河南省大学生网络安全技术大赛
贵州网络安全竞赛2017
信息网络安全监察考公务员
软件开发版权授权书范本
雷达软件开发工程师
数据库集群架构项目
it工作的软件开发
虚拟ftp服务器可以远程下载吗