JS破解之补浏览器环境的两种监控方式 学习资源 Web逆向 原创

花儿谢了 2020-6-7 35372

1,首先要说的肯定是 Proxy 了,介绍就不说了,直接上代码:

window = new Proxy(global, {
    get: function (target, key, receiver) {
        console.log("关注公众号【妄为写代码】window.get", key, target[key]);
        // console.log("window.get", key);        
        if (target[key] instanceof Object){
            return  new Proxy(target[key], {
                get: function (_target, _key, _receiver) {
                    console.log("window.get", key, _key, _target[_key]);
                    // console.log("window.get", key, _key);                    
                    return _target[_key];
                },
                set: function (_target, _key, _value, _receiver) {
                    console.log("window.set", key, _key, _value);
                    // console.log("window.set", key, _key);                    
                    _target[_key] = _value;
                }
            })
        }
        return target[key];
    },
    set: function (target, key, value, receiver) {
        console.log("关注公众号【妄为写代码】window.set", key, value);
        // console.log("window.set", key);        
        target[key] = value;
    }
});

window.a = {};
window.a;
window.location = {a: 2};
window.location.a;
window.b = {a: 2};
window.b.a;
location.port;
console.log("--------------");
window.location.port
// 20210602更新优化代码

node 环境执行结果:

重点关注【嵌套Proxy】和【重复Proxy】


2,对象属性的 hook 方式

先在浏览器中获取window的属性:

重点关注【未在固定范围的新增属性】和【对比两种方式的 location.port】和【多层属性的获取 window.location.port


3,这个监控的作用就不用说了吧,就是大家常说的缺哪补哪需要用到的,现在补环境的场景越来越多了,一些知名 js 反爬产品,就可以用这个思路,环境补的好,可以到处用,还能省好多事,一举多得。

嗯,我也准备学大家开始【佛系】社群运营了,大家可以扫码进群一起交流技术,nice to meet you.

5,补充监控console

var mylog = console.log;
var myconsole = console;
Object.defineProperty(window, 'console', {
    get: function() {
        mylog('get console');
        return myconsole;
    },
    set:function(val){
        mylog('set console');
        myconsole = val;
    }});
console = new Proxy(myconsole, {
    get: function (target, key, receiver) {
        mylog("关注公众号【妄为写代码】console.get", key, target[key]);
        return target[key];
    },
    set: function (target, key, value, receiver) {
        mylog("关注公众号【妄为写代码】console.set", key, value);
        target[key] = value;
    }
});


所谓的补环境基本皆是由此而来的,发散思维你将拥有的更多


4,补充


最新回复 (241)
  • atob 2天前
    0 242
    6666
  • hewcb 6天前
    0 241
    1
  • efz666 10天前
    0 240
    666
  • straybug 12天前
    0 239
    666666
  • mcstudy 13天前
    0 238
    666
  • Ming277 14天前
    0 237
    1
  • xw_cqx 14天前
    0 236
    1
  • osin 17天前
    0 235
    1
  • wbk 17天前
    0 234
    1
  • 17天前
    0 233
    1
  • 唐宋 19天前
    0 232
    666
  • frank 24天前
    0 231
    1
  • dapwn 24天前
    0 230
    1
  • night_king 25天前
    0 229
    我康康
  • smile1847 28天前
    0 228
    看隐藏
  • 0 227
    看看内容
  • liing1221 29天前
    0 226
    66
  • lktop 29天前
    0 225
    学习一下
  • 0 224
    1
  • ade 1月前
    0 223
    666
  • leolin 1月前
    0 222
    6666
  • 0 221
    666666
  • dom522 1月前
    0 220
    正好在看这个
  • 0 219
    6666666666
  • Levy96 1月前
    0 218
    66666
  • lol_olo 1月前
    0 217
    很厉害
  • 苏子 1月前
    0 216
    xx
  • dllklc 1月前
    0 215
    666
  • jdf000 1月前
    0 214
    66666666
  • kbqncf 1月前
    0 213
    111
  • qianyin 1月前
    0 212
    6666
  • 1920hbw 1月前
    0 211
    学习
  • wochuan 2月前
    0 210
    25556485858
  • Masol7 2月前
    0 209
    6
  • Masol7 2月前
    0 208
    66
  • johnjgh 2月前
    0 207
    6666
  • 0 206
    666666
  • 0 205
    6666666
  • elvis 2月前
    0 204
    1
  • 西木 2月前
    0 203
    66666
  • yyjjjj 2月前
    0 202
    11
  • 0 201
    6666666666666666666666666666666666666666666666666666666666666666666
  • 0 200
    1
  • 李强 2月前
    0 199
    111
  • 莫枫 2月前
    0 198
    666
  • harvey 2月前
    0 197
    6
  • 0 196
    6666
  • wzwv 2月前
    0 195
    6666
  • 0 194
    666
  • dong 2月前
    0 193
    1
  • conlin 2月前
    0 192
    1
  • 回忆 2月前
    0 191
    学习一下
  • 0 190
    1
  • mythsman 2月前
    0 189
    1
  • 0 188
    666
  • smart 2月前
    0 187
    66
  • 暖年 2月前
    0 186
    666
  • root_ 2月前
    0 185
    666
  • duhongyu 2月前
    0 184
    666
  • mmmmmmmm 2月前
    0 183
    666
  • 0 182
    11
  • wudan6 3月前
    0 181
    666
  • Aozora 3月前
    0 180
    233
  • 花儿谢了 3月前
    0 179
    cai508 老哥公众号名字发一下啊啊啊
    哥哥,文章代码里面不就是嘛
  • xkoga 3月前
    0 178
    6666
  • 0 177
    1
  • 0 176
    2
  • 0 175
    shenm
  • wkaanig 3月前
    0 174
    666
  • 自由 3月前
    0 173
    6666
  • cai508 3月前
    0 172
    老哥公众号名字发一下啊啊啊
  • 0 171
    1
  • zzpingig 3月前
    0 170
    6666666666
  • 0 169
    666
  • 0 168
    1
  • Kaison 4月前
    0 167
    花哥yyds
  • 0 166

    21323

  • ben5959 4月前
    0 165
    学习
  • lip 4月前
    0 164
    1
  • 0 163
    学习
  • 花儿谢了 4月前
    0 162
    cai508 老哥麻烦在发一个群二维码,我进一下
    这个群二维码会过期,你可以从我公众号找到我,然后拉你进群
  • cai508 4月前
    0 161
    老哥麻烦在发一个群二维码,我进一下
  • cai508 4月前
    0 160
    6666
  • CZW 4月前
    0 159
    666
  • MuggleK 4月前
    0 158
    666
  • cj 4月前
    0 157
    666
  • yang3250 4月前
    0 156
    66
  • mz_xing 4月前
    0 155
    666
  • 0 154
    11111111111111111111111111111
  • CLAY_Gan 5月前
    0 153
    666
  • 0 152
    666
  • mengtao 5月前
    0 151
    666
  • 0 150
    666
  • 0 149
    666
  • 0 148
    666
  • 0 147
    写一份哦想,学习一下
  • zk2020 5月前
    0 146
    群号
  • 0 145
    我来看看
  • franky 5月前
    0 144
    666
  • 0 143
    666666666
返回