js逆向之另类思路扣代码

海绵 日常学python
经常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;    }});

来源:https://www.icode9.com/content-4-807401.html

(0)

相关推荐

  • JavaScript ES6代理的实际用例,快速教你用好ES6代理

    元编程是一种强大的技术,使你能够编写可以创建其他程序的程序.ES6借助代理和许多类似功能,使在JavaScript中利用元编程变得更加容易.ES6 Proxy(代理) 有助于重新定义对象的基本操作,从 ...

  • 石桥码农:Vue3 与 Vue2 在响应机制的实现上有什么差别?

    文 / 李艺 目录 一.问题:vue2 通过数组索引改变数据不能触发视图更新是怎么回事? 二.分析:在 vue3 不存在这个问题,vue2 与 vue3 的响应机制分别是怎么实现的? 三.实践:现在如 ...

  • js封装map

    js封装map          在大三的时候,做电子商务网站的时候,前端页面打包过来的数据都是json格式,为了更好的体验,有的时候我们需要封装url,需要我点击回退的时候,url地址栏目不变,其实 ...

  • 如何手写Vue-next响应式呢?本文详解

    前言 1.本文将从零开始手写一份vue-next中的响应式原理,出于篇幅和理解的难易程度,我们将只实现核心的api并忽略一些边界的功能点 本文将实现的api包括 track trigger effec ...

  • Js~对键值对操作

    键值对主要是面向对象语言里的字典,或者叫哈希表,它通过键(key)可以直接访问到值(value),所以它查找的时间复杂度是O(1),即一次查找即可找到目标:在.net里有Dictionary,而在ja ...

  • JS逆向-抠代码的第四天【手把手学会抠代码】

    今天是md5巩固项目,该项目比昨天的复杂一些,但方法思路是一样的. 今天的目标:https://www.webportal.top/ 接下来,就是解析pwd的加密方式,通过全局所搜,可以出如下结果: ...

  • 【转】杂病诊疗中的另类思路

    作者 / 周宝青 编辑 / 段瑞 ⊙ 校对 / 张芊芊 本文内容摘自国家正规医学图书.杂志.报刊等,文底有具体来源出处.文章标题为原标题.文中内容提取.无丝毫夸大.诱惑.违背客观事实的文字.图片.视频 ...

  • 杂病诊疗中的另类思路

    第 1749 期 作者 / 周宝青 编辑 / 段瑞 ⊙ 校对 / 张芊芊 本文内容摘自国家正规医学图书.杂志.报刊等,文底有具体来源出处.文章标题为原标题.文中内容提取.无丝毫夸大.诱惑.违背客观事实 ...

  • 我去!爬虫遇到JS逆向AES加密反爬,哭了

    大家好,我是辰哥~ 今天准备爬取某抑云音乐时,遇到『JS逆向AES加密』反爬.比如这样的: 在发送请求获取数据时,需要用到参数params和encSecKey,但是这两个参数经过JS逆向AES加密而来 ...

  • 527减持新政后,股份减持的另类思路

    公众号后台回复"群主"即可召唤http://pan.baidu.com/s/1cmrVg6公众号WORD版在百度云盘 本期开始每天推一篇以前的帖子,因为信披一点通写的不是时效性的文 ...

  • 另类思路,朋友圈卖土特产轻松赚钱(上篇)

    电话响了,拿起一看,外地陌生号码,本打算直接挂了,但手指一滑接通了,话筒里传来一个女声. 思维哥,还记得我吗? 俺一愣,这谁啊,这么随便就认哥,咱印象中没这么一个妹妹啊,咱还没回过神来,下一句又来了. ...

  • 另类思路,朋友圈卖土特产轻松赚钱(中篇)

    阿娟说,您让我准备这么多专业详细的资料,甚至还要拍摄每个土特产产品从栽种.生长.到成熟采摘的整个完整过程,同时对包装运输都提出了要求,您是让我去做淘宝宝贝页的详情介绍吗,整个流程和过程都有,这倒是挺有 ...

  • 另类思路,朋友圈卖土特产轻松赚钱(下篇)

    咱们接着昨天的话题继续聊,看阿娟怎么通过朋友圈卖土特产,如何创业轻松赚钱的. 阿娟听了咱的话后,低头开始思考起来,神态甚是凝重,咱也不打断她,这种思路和打法对一个从未创过业的年轻女孩来讲完全是陌生的, ...

  • 【JS 逆向百例】DOM事件断点调试,某商盟登录逆向

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:某商盟登录 ...