其他分享
首页 > 其他分享> > [007]爬虫系列 | 如何本地调试 eval ?代码格式化问题 ?转义符问题 ?

[007]爬虫系列 | 如何本地调试 eval ?代码格式化问题 ?转义符问题 ?

作者:互联网

一、背景

        有些时候,我们遇到一些混淆,里面存在很多eval!!!就一行代码【如下】,难以阅读!!!

 除此之外还会存在转义符\'等,【如下】

那么该如何调试比较好?本文教一个比较好的办法:

debugger大法

借用浏览器帮忙代码美化!!!

二、方法介绍

本文以之前写的一篇文章为例子《[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第三题: 访问逻辑 - 推心置腹》

分析上面的代码,【如下】

var x="div@Expires@@captcha@while@length@@reverse@0xEDB88320@substr@fromCharCode@234@@0@@@11@1500@@cookie@@36@createElement@JgSe0upZ@rOm9XFMtA3QKV7nYsPGT4lifyWwkq5vcjH2IdxUoCbhERLaz81DNB6@@@eval@@window@href@GMT@String@attachEvent@false@toLowerCase@@2@Array@@@@Path@@@@f@if@@@26@@addEventListener@@@try@return@location@toString@@@@@@pathname@@@@setTimeout@@replace@a@innerHTML@@@@1589175086@else@@document@3@@@@https@join@for@@DOMContentLoaded@06@e@@@@@new@catch@var@@May@@split@@function@1@charAt@@__jsl_clearance@0xFF@firstChild@search@31@chars@charCodeAt@20@parseInt@8@@match@RegExp@Mon@challenge@@g@onreadystatechange@@d@".replace(/@*$/,"").split("@"),y="1L N=22(){1i('17.v=17.1e+17.29.1k(/[\\?|&]4-2k/,\\'\\')',i);1t.k='26=1q.c|e|'+(22(){1L t=[22(N){16 s('x.b('+N+')')},(22(){1L N=1t.n('1');N.1m='<1l v=\\'/\\'>1H</1l>';N=N.28.v;1L t=N.2h(/1y?:\\/\\//)[e];N=N.a(t.6).A();16 22(t){1A(1L 1H=e;1H<t.6;1H++){t[1H]=N.24(t[1H])};16 t.1z('')}})()],1H=[[[-~[-~(-~((-~{}|-~[]-~[])))]]+[-~[-~(-~((-~{}|-~[]-~[])))]],[((+!~~{})<<-~[-~-~{}])]+[((+!~~{})<<-~[-~-~{}])],[-~[-~(-~((-~{}|-~[]-~[])))]]+[((+!~~{})<<-~[-~-~{}])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[(+!![[][[]]][23])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+(C-~[-~-~{}]+[]+[[]][e]),(C-~[-~-~{}]+[]+[[]][e])+(C-~[-~-~{}]+[]+[[]][e]),[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+(-~[]+[]+[[]][e]),(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+(-~[-~-~{}]+[[]][e]),(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[-~-~{}],[((+!~~{})<<-~[-~-~{}])]+[-~-~{}],(-~[]+[]+[[]][e])+[(+!![[][[]]][23])]+[(+!![[][[]]][23])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]],(-~[]+[]+[[]][e])+[(+!![[][[]]][23])]+[(+!![[][[]]][23])]],[[-~[-~(-~((-~{}|-~[]-~[])))]]],[[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})]+[((+!~~{})<<-~[-~-~{}])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[(+!![[][[]]][23])],[((+!~~{})<<-~[-~-~{}])]+(C-~[-~-~{}]+[]+[[]][e]),(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+(-~[-~-~{}]+[[]][e]),[((+!~~{})<<-~[-~-~{}])]+[((+!~~{})<<-~[-~-~{}])],(C-~[-~-~{}]+[]+[[]][e])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],[-~[-~(-~((-~{}|-~[]-~[])))]]+[-~[-~(-~((-~{}|-~[]-~[])))]],(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+[-~[-~(-~((-~{}|-~[]-~[])))]],(C-~[-~-~{}]+[]+[[]][e])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+(-~[-~-~{}]+[[]][e]),[[1u]*(1u)]+[((+!~~{})<<-~[-~-~{}])]],[[[1u]*(1u)]],[(-~[-~-~{}]+[[]][e])+[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]],(C-~[-~-~{}]+[]+[[]][e])+(-~[]+[]+[[]][e]),[-~[-~(-~((-~{}|-~[]-~[])))]]+[((+!~~{})<<-~[-~-~{}])]]];1A(1L N=e;N<1H.6;N++){1H[N]=t.8()[(-~[]+[]+[[]][e])](1H[N])};16 1H.1z('')})()+';2=2j, h-1N-2d 1D:2a:10 w;H=/;'};M((22(){15{16 !!u.12;}1K(1E){16 z;}})()){1t.12('1C',N,z)}1r{1t.y('2n',N)}",f=function(x,y){var a=0,b=0,c=0;x=x.split("");y=y||99;while((a=x.shift())&&(b=a.charCodeAt(0)-77.5))c=(Math.abs(b)<13?(b+48.5):parseInt(a,36))+y*c;return c},z=f(y.match(/\w/g).sort(function(x,y){return f(x)-f(y)}).pop());while(z++)try{debugger;eval(y.replace(/\b\w+\b/g, function(y){return x[f(y,z)-1]||("_"+y)}));break}catch(_){}

2.1 代码格式化

由于上面代码被压缩了,难以阅读,那么我们先解压:

这里有两种办法:

  1. 通过浏览器代码美化
  2. 美化工具美化

方法1:

直接代码里面加一个debugger;在控制台运行!

 成功断点【如下】

点击代码格式化:

 成功美化:

代码如下:

var x = "div@Expires@@captcha@while@length@@reverse@0xEDB88320@substr@fromCharCode@234@@0@@@11@1500@@cookie@@36@createElement@JgSe0upZ@rOm9XFMtA3QKV7nYsPGT4lifyWwkq5vcjH2IdxUoCbhERLaz81DNB6@@@eval@@window@href@GMT@String@attachEvent@false@toLowerCase@@2@Array@@@@Path@@@@f@if@@@26@@addEventListener@@@try@return@location@toString@@@@@@pathname@@@@setTimeout@@replace@a@innerHTML@@@@1589175086@else@@document@3@@@@https@join@for@@DOMContentLoaded@06@e@@@@@new@catch@var@@May@@split@@function@1@charAt@@__jsl_clearance@0xFF@firstChild@search@31@chars@charCodeAt@20@parseInt@8@@match@RegExp@Mon@challenge@@g@onreadystatechange@@d@".replace(/@*$/, "").split("@")
  , y = "1L N=22(){1i('17.v=17.1e+17.29.1k(/[\\?|&]4-2k/,\\'\\')',i);1t.k='26=1q.c|e|'+(22(){1L t=[22(N){16 s('x.b('+N+')')},(22(){1L N=1t.n('1');N.1m='<1l v=\\'/\\'>1H</1l>';N=N.28.v;1L t=N.2h(/1y?:\\/\\//)[e];N=N.a(t.6).A();16 22(t){1A(1L 1H=e;1H<t.6;1H++){t[1H]=N.24(t[1H])};16 t.1z('')}})()],1H=[[[-~[-~(-~((-~{}|-~[]-~[])))]]+[-~[-~(-~((-~{}|-~[]-~[])))]],[((+!~~{})<<-~[-~-~{}])]+[((+!~~{})<<-~[-~-~{}])],[-~[-~(-~((-~{}|-~[]-~[])))]]+[((+!~~{})<<-~[-~-~{}])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[(+!![[][[]]][23])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+(C-~[-~-~{}]+[]+[[]][e]),(C-~[-~-~{}]+[]+[[]][e])+(C-~[-~-~{}]+[]+[[]][e]),[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+(-~[]+[]+[[]][e]),(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+(-~[-~-~{}]+[[]][e]),(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[-~-~{}],[((+!~~{})<<-~[-~-~{}])]+[-~-~{}],(-~[]+[]+[[]][e])+[(+!![[][[]]][23])]+[(+!![[][[]]][23])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]],(-~[]+[]+[[]][e])+[(+!![[][[]]][23])]+[(+!![[][[]]][23])]],[[-~[-~(-~((-~{}|-~[]-~[])))]]],[[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})]+[((+!~~{})<<-~[-~-~{}])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[(+!![[][[]]][23])],[((+!~~{})<<-~[-~-~{}])]+(C-~[-~-~{}]+[]+[[]][e]),(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+(-~[-~-~{}]+[[]][e]),[((+!~~{})<<-~[-~-~{}])]+[((+!~~{})<<-~[-~-~{}])],(C-~[-~-~{}]+[]+[[]][e])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],[-~[-~(-~((-~{}|-~[]-~[])))]]+[-~[-~(-~((-~{}|-~[]-~[])))]],(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+[-~[-~(-~((-~{}|-~[]-~[])))]],(C-~[-~-~{}]+[]+[[]][e])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],(-~[]+[]+[[]][e])+(-~[]+[]+[[]][e])+(-~[-~-~{}]+[[]][e]),[[1u]*(1u)]+[((+!~~{})<<-~[-~-~{}])]],[[[1u]*(1u)]],[(-~[-~-~{}]+[[]][e])+[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]],(C-~[-~-~{}]+[]+[[]][e])+(-~[]+[]+[[]][e]),[-~[-~(-~((-~{}|-~[]-~[])))]]+[((+!~~{})<<-~[-~-~{}])]]];1A(1L N=e;N<1H.6;N++){1H[N]=t.8()[(-~[]+[]+[[]][e])](1H[N])};16 1H.1z('')})()+';2=2j, h-1N-2d 1D:2a:10 w;H=/;'};M((22(){15{16 !!u.12;}1K(1E){16 z;}})()){1t.12('1C',N,z)}1r{1t.y('2n',N)}"
  , f = function(x, y) {
    var a = 0
      , b = 0
      , c = 0;
    x = x.split("");
    y = y || 99;
    while ((a = x.shift()) && (b = a.charCodeAt(0) - 77.5))
        c = (Math.abs(b) < 13 ? (b + 48.5) : parseInt(a, 36)) + y * c;
    return c
}
  , z = f(y.match(/\w/g).sort(function(x, y) {
    return f(x) - f(y)
}).pop());
while (z++)
    try {
        debugger ;eval(y.replace(/\b\w+\b/g, function(y) {
            return x[f(y, z) - 1] || ("_" + y)
        }));
        break
    } catch (_) {}

方法2:

借用工具【在线代码格式化

美化之后,我们再放进去控制台调试看看:

 可以直接执行成功!接下来就可以通过debugger在里面分析了!

到这里,你可能会觉得:这不是很简单?直接代码格式化不就可以阅读和运行了?那如果是遇到转义符?接下来我们再看看,如果遇到转义符会怎样!

2.2 eval转义符问题

通过上面代码格式化之后,我们发现里面还是存在一个eval

 我们加断点调试,找出其执行的源代码:

 代码如下:

var _N=function(){setTimeout('location.href=location.pathname+location.search.replace(/[\\?|&]captcha-challenge/,\\'\\')',1500);document.cookie='__jsl_clearance=1589175086.234|0|'+(function(){var _t=[function(_N){return eval('String.fromCharCode('+_N+')')},(function(){var _N=document.createElement('div');_N.innerHTML='<a href=\\'/\\'>_1H</a>';_N=_N.firstChild.href;var _t=_N.match(/https?:\\/\\//)[0];_N=_N.substr(_t.length).toLowerCase();return function(_t){for(var _1H=0;_1H<_t.length;_1H++){_t[_1H]=_N.charAt(_t[_1H])};return _t.join('')}})()],_1H=[[[-~[-~(-~((-~{}|-~[]-~[])))]]+[-~[-~(-~((-~{}|-~[]-~[])))]],[((+!~~{})<<-~[-~-~{}])]+[((+!~~{})<<-~[-~-~{}])],[-~[-~(-~((-~{}|-~[]-~[])))]]+[((+!~~{})<<-~[-~-~{}])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[(+!![[][[]]][1])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+(2-~[-~-~{}]+[]+[[]][0]),(2-~[-~-~{}]+[]+[[]][0])+(2-~[-~-~{}]+[]+[[]][0]),[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+(-~[]+[]+[[]][0]),(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+(-~[-~-~{}]+[[]][0]),(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[-~-~{}],[((+!~~{})<<-~[-~-~{}])]+[-~-~{}],(-~[]+[]+[[]][0])+[(+!![[][[]]][1])]+[(+!![[][[]]][1])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]],(-~[]+[]+[[]][0])+[(+!![[][[]]][1])]+[(+!![[][[]]][1])]],[[-~[-~(-~((-~{}|-~[]-~[])))]]],[[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})]+[((+!~~{})<<-~[-~-~{}])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[(+!![[][[]]][1])],[((+!~~{})<<-~[-~-~{}])]+(2-~[-~-~{}]+[]+[[]][0]),(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+(-~[-~-~{}]+[[]][0]),[((+!~~{})<<-~[-~-~{}])]+[((+!~~{})<<-~[-~-~{}])],(2-~[-~-~{}]+[]+[[]][0])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],[-~[-~(-~((-~{}|-~[]-~[])))]]+[-~[-~(-~((-~{}|-~[]-~[])))]],(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+[-~[-~(-~((-~{}|-~[]-~[])))]],(2-~[-~-~{}]+[]+[[]][0])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+(-~[-~-~{}]+[[]][0]),[[3]*(3)]+[((+!~~{})<<-~[-~-~{}])]],[[[3]*(3)]],[(-~[-~-~{}]+[[]][0])+[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]],(2-~[-~-~{}]+[]+[[]][0])+(-~[]+[]+[[]][0]),[-~[-~(-~((-~{}|-~[]-~[])))]]+[((+!~~{})<<-~[-~-~{}])]]];for(var _N=0;_N<_1H.length;_N++){_1H[_N]=_t.reverse()[(-~[]+[]+[[]][0])](_1H[_N])};return _1H.join('')})()+';Expires=Mon, 11-May-20 06:31:26 GMT;Path=/;'};if((function(){try{return !!window.addEventListener;}catch(e){return false;}})()){document.addEventListener('DOMContentLoaded',_N,false)}else{document.attachEvent('onreadystatechange',_N)}

 好家伙!又是一个代码压缩!直接格式化看看:

var _N = function() {
    setTimeout('location.href=location.pathname+location.search.replace(/[\\?|&]captcha-challenge/,\\'\\')', 1500);
    document.cookie = '__jsl_clearance=1589175086.234|0|' + (function() {
        var _t = [function(_N) {
            return eval('String.fromCharCode(' + _N + ')')
        },
        (function() {
            var _N = document.createElement('div');
            _N.innerHTML = '<a href=\\' / \\'>_1H</a>';
            _N = _N.firstChild.href;
            var _t = _N.match(/https?:\\/\\ //)[0];_N=_N.substr(_t.length).toLowerCase();return function(_t){for(var _1H=0;_1H<_t.length;_1H++){_t[_1H]=_N.charAt(_t[_1H])};return _t.join('')}})()],_1H=[[[-~[-~(-~((-~{}|-~[]-~[])))]]+[-~[-~(-~((-~{}|-~[]-~[])))]],[((+!~~{})<<-~[-~-~{}])]+[((+!~~{})<<-~[-~-~{}])],[-~[-~(-~((-~{}|-~[]-~[])))]]+[((+!~~{})<<-~[-~-~{}])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[(+!![[][[]]][1])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+(2-~[-~-~{}]+[]+[[]][0]),(2-~[-~-~{}]+[]+[[]][0])+(2-~[-~-~{}]+[]+[[]][0]),[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+(-~[]+[]+[[]][0]),(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+(-~[-~-~{}]+[[]][0]),(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[-~-~{}],[((+!~~{})<<-~[-~-~{}])]+[-~-~{}],(-~[]+[]+[[]][0])+[(+!![[][[]]][1])]+[(+!![[][[]]][1])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]],(-~[]+[]+[[]][0])+[(+!![[][[]]][1])]+[(+!![[][[]]][1])]],[[-~[-~(-~((-~{}|-~[]-~[])))]]],[[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})]+[((+!~~{})<<-~[-~-~{}])],[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]]+[(+!![[][[]]][1])],[((+!~~{})<<-~[-~-~{}])]+(2-~[-~-~{}]+[]+[[]][0]),(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+(-~[-~-~{}]+[[]][0]),[((+!~~{})<<-~[-~-~{}])]+[((+!~~{})<<-~[-~-~{}])],(2-~[-~-~{}]+[]+[[]][0])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],[-~[-~(-~((-~{}|-~[]-~[])))]]+[-~[-~(-~((-~{}|-~[]-~[])))]],(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+[-~[-~(-~((-~{}|-~[]-~[])))]],(2-~[-~-~{}]+[]+[[]][0])+[(-~~~{}<<-~~~{})+(-~~~{}<<-~~~{})],(-~[]+[]+[[]][0])+(-~[]+[]+[[]][0])+(-~[-~-~{}]+[[]][0]),[[3]*(3)]+[((+!~~{})<<-~[-~-~{}])]],[[[3]*(3)]],[(-~[-~-~{}]+[[]][0])+[-~[]-~[]-~!/!/+(-~[]-~[])*[-~[]-~[]]],(2-~[-~-~{}]+[]+[[]][0])+(-~[]+[]+[[]][0]),[-~[-~(-~((-~{}|-~[]-~[])))]]+[((+!~~{})<<-~[-~-~{}])]]];for(var _N=0;_N<_1H.length;_N++){_1H[_N]=_t.reverse()[(-~[]+[]+[[]][0])](_1H[_N])};return _1H.join('')})()+';Expires=Mon, 11-May-20 06:31:26 GMT;Path=/;'};if((function(){try{return !!window.addEventListener;}catch(e){return false;}})()){document.addEventListener('DOMContentLoaded',_N,false)}else{document.attachEvent('onreadystatechange',_N)}
            

 将上面代码放到控制器里面执行看看!!!

 我们发现报了一个错!放到vscode里面看看,到底在哪里出了问题:

转义符问题!!! 而且还不止一个!!!

很多人可能会说:既然存在转义符,那我一个一个去掉不就行了?!!!

当然可以!但是这很麻烦啊!

那么又有什么比较好的办法?!!!那就是:

debugger大法  +  浏览器格式化代码

 具体如下:

1、不要直接格式化,先通过eval执行,在前面加debugger;

2、断点之后先别急着格式化

3、直接点击下一步

4、等到运行到函数里面去了,开始格式化

点击几下之后,我们发现已经运行到里面去了

 点击格式化:

 成功将整一段代码格式化,而且转义符也没了:

代码如下:

var _N = function() {
    setTimeout('location.href=location.pathname+location.search.replace(/[\?|&]captcha-challenge/,\'\')', 1500);
    document.cookie = '__jsl_clearance=1589175086.234|0|' + (function() {
        var _t = [function(_N) {
            return eval('String.fromCharCode(' + _N + ')')
        }
        , (function() {
            var _N = document.createElement('div');
            _N.innerHTML = '<a href=\'/\'>_1H</a>';
            _N = _N.firstChild.href;
            var _t = _N.match(/https?:\/\//)[0];
            _N = _N.substr(_t.length).toLowerCase();
            return function(_t) {
                for (var _1H = 0; _1H < _t.length; _1H++) {
                    _t[_1H] = _N.charAt(_t[_1H])
                }
                ;return _t.join('')
            }
        }
        )()]
          , _1H = [[[-~[-~(-~((-~{} | -~[] - ~[])))]] + [-~[-~(-~((-~{} | -~[] - ~[])))]], [((+!~~{}) << -~[-~-~{}])] + [((+!~~{}) << -~[-~-~{}])], [-~[-~(-~((-~{} | -~[] - ~[])))]] + [((+!~~{}) << -~[-~-~{}])], [-~[] - ~[] - ~!/!/ + (-~[] - ~[]) * [-~[] - ~[]]] + [(+!![[][[]]][1])], [-~[] - ~[] - ~!/!/ + (-~[] - ~[]) * [-~[] - ~[]]] + (2 - ~[-~-~{}] + [] + [[]][0]), (2 - ~[-~-~{}] + [] + [[]][0]) + (2 - ~[-~-~{}] + [] + [[]][0]), [-~[] - ~[] - ~!/!/ + (-~[] - ~[]) * [-~[] - ~[]]] + (-~[] + [] + [[]][0]), (-~[] + [] + [[]][0]) + (-~[] + [] + [[]][0]) + (-~[-~-~{}] + [[]][0]), (-~[] + [] + [[]][0]) + (-~[] + [] + [[]][0]) + [(-~~~{} << -~~~{}) + (-~~~{} << -~~~{})], [-~[] - ~[] - ~!/!/ + (-~[] - ~[]) * [-~[] - ~[]]] + [-~-~{}], [((+!~~{}) << -~[-~-~{}])] + [-~-~{}], (-~[] + [] + [[]][0]) + [(+!![[][[]]][1])] + [(+!![[][[]]][1])], [-~[] - ~[] - ~!/!/ + (-~[] - ~[]) * [-~[] - ~[]]] + [-~[] - ~[] - ~!/!/ + (-~[] - ~[]) * [-~[] - ~[]]], (-~[] + [] + [[]][0]) + [(+!![[][[]]][1])] + [(+!![[][[]]][1])]], [[-~[-~(-~((-~{} | -~[] - ~[])))]]], [[(-~~~{} << -~~~{}) + (-~~~{} << -~~~{})] + [((+!~~{}) << -~[-~-~{}])], [-~[] - ~[] - ~!/!/ + (-~[] - ~[]) * [-~[] - ~[]]] + [(+!![[][[]]][1])], [((+!~~{}) << -~[-~-~{}])] + (2 - ~[-~-~{}] + [] + [[]][0]), (-~[] + [] + [[]][0]) + (-~[] + [] + [[]][0]) + (-~[-~-~{}] + [[]][0]), [((+!~~{}) << -~[-~-~{}])] + [((+!~~{}) << -~[-~-~{}])], (2 - ~[-~-~{}] + [] + [[]][0]) + [(-~~~{} << -~~~{}) + (-~~~{} << -~~~{})], [-~[-~(-~((-~{} | -~[] - ~[])))]] + [-~[-~(-~((-~{} | -~[] - ~[])))]], (-~[] + [] + [[]][0]) + (-~[] + [] + [[]][0]) + [-~[-~(-~((-~{} | -~[] - ~[])))]], (2 - ~[-~-~{}] + [] + [[]][0]) + [(-~~~{} << -~~~{}) + (-~~~{} << -~~~{})], (-~[] + [] + [[]][0]) + (-~[] + [] + [[]][0]) + (-~[-~-~{}] + [[]][0]), [[3] * (3)] + [((+!~~{}) << -~[-~-~{}])]], [[[3] * (3)]], [(-~[-~-~{}] + [[]][0]) + [-~[] - ~[] - ~!/!/ + (-~[] - ~[]) * [-~[] - ~[]]], (2 - ~[-~-~{}] + [] + [[]][0]) + (-~[] + [] + [[]][0]), [-~[-~(-~((-~{} | -~[] - ~[])))]] + [((+!~~{}) << -~[-~-~{}])]]];
        for (var _N = 0; _N < _1H.length; _N++) {
            _1H[_N] = _t.reverse()[(-~[] + [] + [[]][0])](_1H[_N])
        }
        ;return _1H.join('')
    }
    )() + ';Expires=Mon, 11-May-20 06:31:26 GMT;Path=/;'
};
if ((function() {
    try {
        return !!window.addEventListener;
    } catch (e) {
        return false;
    }
}
)()) {
    document.addEventListener('DOMContentLoaded', _N, false)
} else {
    document.attachEvent('onreadystatechange', _N)
}

 我们将上面放到控制天运行看看:

 成功运行,接下来就可以一步一步调试了!!! 

三、总结 

如果我们想调试eval函数的话,可以先对其里面源码进行格式化处理【详细看上面2.1】,直接在控制台执行看看,能否直接运行!!!

如果存在转义符,则可以通过debugger+浏览器格式化【详细看上面2.2】,处理掉转义符之后,再运行调试!!!

如果还存在其他情况,在评论区我们一起讨论讨论叭!!!

愿您生活愉快!!!

标签:function,格式化,代码,爬虫,007,location,eval,var,1H
来源: https://blog.csdn.net/weixin_41593408/article/details/119487158