前言
分析
这次也是一个国外的代理网站,打开查看:
是的,它也是对端口做了加密,这里的rf034其实就是实际的端口,但是并没有直接显示出来,而是通过一段js实现的
那么这段js在哪呢?直接全文检索:
点开这个c8ae6的js,点击格式化后查看:
源码
eval(function(p, a, c, k, e, d) {
e = function(c) {
return (c 35 ? String.fromCharCode(c + 29) : c.toString(36))
}
;
if (!''.replace(/^/, String)) {
while (c--) {
d【e(c)】 = k【c】 || e(c)
}
k = 【function(e) {
return d【e】
}
】;
e = function() {
return '\w+'
}
;
c = 1
}
;while (c--) {
if (k【c】) {
p = p.replace(new RegExp('\b' + e(c) + '\b','g'), k【c】)
}
}
return p
}('$(1b).1a(19(){$(\'.17\').0(18);$(\'.1c\').0(1d);$(\'.1h\').0(1g);$(\'.1f\').0(1e);$(\'.16\').0(15);$(\'.X\').0(W);$(\'.V\').0(T);$(\'.U\').0(Y);$(\'.Z\').0(14);$(\'.13\').0(12);$(\'.10\').0(11);$(\'.1i\').0(1j);$(\'.1B\').0(1A);$(\'.1z\').0(1x);$(\'.1y\').0(1C);$(\'.1D\').0(1H);$(\'.1G\').0(1F);$(\'.1E\').0(1w);$(\'.1v\').0(1o);$(\'.1n\').0(1m);$(\'.1k\').0(1l);$(\'.1p\').0(1q);$(\'.1u\').0(1t);$(\'.1s\').0(1r);$(\'.S\').0(K);$(\'.j\').0(i);$(\'.h\').0(f);$(\'.g\').0(k);$(\'.l\').0(p);$(\'.o\').0(n);$(\'.m\').0(e);$(\'.c\').0(5);$(\'.4\').0(3);$(\'.1\').0(2);$(\'.6\').0(d);$(\'.7\').0(b);$(\'.a\').0(8);$(\'.9\').0(q);$(\'.R\').0(r);$(\'.J\').0(I);$(\'.G\').0(H);$(\'.L\').0(M);$(\'.Q\').0(P);$(\'.O\').0(N);$(\'.F\').0(E);$(\'.w\').0(v);$(\'.u\').0(s);$(\'.t\').0(x);$(\'.y\').0(D);$(\'.C\').0(B);$(\'.z\').0(A);$(\'.1I\').0(3r);$(\'.1J\').0(2T);$(\'.2S\').0(2Q);$(\'.2R\').0(2V);$(\'.2W\').0(30);$(\'.2Z\').0(2Y);$(\'.2X\').0(2P);$(\'.2O\').0(2G);$(\'.2F\').0(2E);$(\'.2C\').0(2D);$(\'.2H\').0(2I);$(\'.2N\').0(2M);$(\'.2L\').0(2J);$(\'.2K\').0(31);$(\'.32\').0(3k);$(\'.3j\').0(3i);$(\'.3g\').0(3h);$(\'.3l\').0(3m);$(\'.3q\').0(3p);$(\'.3o\').0(3n);$(\'.3f\').0(3e);$(\'.37\').0(36);$(\'.35\').0(33);$(\'.34\').0(38);$(\'.39\').0(3d);$(\'.3c\').0(3b);$(\'.3a\').0(2B);$(\'.2A\').0(22);$(\'.21\').0(20);$(\'.1Y\').0(1Z);$(\'.23\').0(24);$(\'.28\').0(27);$(\'.26\').0(25);$(\'.1X\').0(1W);$(\'.1O\').0(1N);$(\'.1M\').0(1K);$(\'.1L\').0(1P);$(\'.1Q\').0(1V);$(\'.1U\').0(1T);$(\'.1R\').0(1S);$(\'.29\').0(2a);$(\'.2t\').0(2s);$(\'.2r\').0(2p);$(\'.2q\').0(2u);$(\'.2v\').0(2z);$(\'.2y\').0(2x);$(\'.2w\').0(2o);$(\'.2n\').0(2f);$(\'.2e\').0(2d);$(\'.2b\').0(2c);$(\'.2g\').0(2h);$(\'.2m\').0(2l);$(\'.2k\').0(2i);$(\'.2j\').0(2U)});', 62, 214, 'html|r1cad|53959|34273|r382f|36681|r16ec|r5f55|44612|r0799|r91df|34560|r4732|60530|59144|8004|r6d76|rfbab|3256|r5288|9991|r27a0|r5349|39371|r1907|34403|38525|3888|8380|rb67c|r82c8|48678|ra4dc|8197|rc1ac|r4403|31475|49602|r58e6|83|2222|r0484|rc90e|1081|1080|r961e|46385|r6572|8118|42119|r1dc7|48146|r11c6|r6c92|rd155|80|rbf49|r1dfd|999|r3872|8081|rf034|r6689|60604|37699|r25ee|3128|8090|r371e|r91de|8080|function|ready|document|r0e8d|38009|55443|rbfa3|8088|rd420|ra882|32231|rba5d|63141|45521|rfc3a|41878|rc6c6|51680|443|r9a25|31932|r1b07|r11b4|60731|808|r281f|r2329|53281|r99d5|59152|rf640|r7ec7|9999|re54b|65205|rf04b|r3629|32439|rab5c|rfec2|32161|rc143|55693|r2e4b|r34a8|33326|53438|r0938|8889|58893|r9bcd|r7f6f|50330|45729|r96d2|45730|r87fc|35953|45381|r183f|37444|r5b53|rbe71|61657|r148b|1993|32916|r0e0a|41621|rd26e|40282|42967|r79d3|re62d|8085|r8b97|rf3b1|54256|33855|r6cbb|r85ac|56315|r63b2|31280|r6b29|r8f7e|45295|r8bce|48241|rc9e2|48687|r411f|3150|60792|r1274|47385|r62f2|56644|45282|rf56a|r6953|47615|r8166|rae36|30716|39589|r0e11|r9760|8686|54675|58888|r22cd|rd8eb|45944|ra76c|47247|42928|r75b5|47744|rd2c9|r1f65|47548|rcb82|30640|rddf2|ra051|48995|ra854|48625|61954|rac92|r1c73|4645|52271|r69ad|54018|rccd3|43631|23500|r34e5|9001|rb9b6|61743'.split('|'), 0, {}))
这段代码,说实话乍一看确实费劲,我搜了下有关function(p, a, c, k, e, d) 加密的:
还挺多的,但是我点进去一个一个看,大部分的文章感觉内容都很类似,然后,都在说可以把最后的return改成:
其实这个eval(function(p,a,c,k,e,d){}))中自带解码函数e(). while(c--){if(k【c】){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k【c】)}}return p while循环产生的每个p就是解码后的函数代码,我们删掉源码中的return p,不用将结果返回, 而是直接输出在一个文本区域中,如document.getElementById(”textareaID”).innerText=p
我尝试着改了,保存成一个html文件
用浏览器打开,这些也确实就是实际的端口
用刚才的搜rf034也确实是源码上的3128端口对上:
还有种方法,用浏览器自带的解混淆工具:
然后把我下面圈住的地方,勾选上,再刷新页面即可
以上的方法是针对某些在代码本身有加密混淆的代码,比如这个博客里的:点我,这里面的案例也是用的这个函数来加密代码,用以上方法确实能把实际的js转义出来。
但是,是的,讨厌的“但是”出现了
我们这里的,其实代码本身并没有加密,为什么这么说,我新开一个标签页,在console里粘贴这段代码:
回车,卧槽,报错了,没事,它提示的意思是浏览器不能执行eval的,因为方式一些xss攻击之类
把eval删了再看:
回车,结果也直接就出现了,所以,代码本身是没有做加密的
这里的加密是对数据的加密,因为我发现,我刷新一次页面,只要这个代理网站上的代理有更新,它后面传的参数就会做相应的改变:这一堆参数
$(1b).1a(19(){$(\'.17\').0(18);$(\'.1c\').0(1d);$(\'.1h\').0(1g);$(\'.1f\').0(1e);$(\'.16\').0(15);$(\'.X\').0(W);$(\'.V\').0(T);$(\'.U\').0(Y);$(\'.Z\').0(14);$(\'.13\').0(12);$(\'.10\').0(11);$(\'.1i\').0(1j);$(\'.1B\').0(1A);$(\'.1z\').0(1x);$(\'.1y\').0(1C);$(\'.1D\').0(1H);$(\'.1G\').0(1F);$(\'.1E\').0(1w);$(\'.1v\').0(1o);$(\'.1n\').0(1m);$(\'.1k\').0(1l);$(\'.1p\').0(1q);$(\'.1u\').0(1t);$(\'.1s\').0(1r);$(\'.S\').0(K);$(\'.j\').0(i);$(\'.h\').0(f);$(\'.g\').0(k);$(\'.l\').0(p);$(\'.o\').0(n);$(\'.m\').0(e);$(\'.c\').0(5);$(\'.4\').0(3);$(\'.1\').0(2);$(\'.6\').0(d);$(\'.7\').0(b);$(\'.a\').0(8);$(\'.9\').0(q);$(\'.R\').0(r);$(\'.J\').0(I);$(\'.G\').0(H);$(\'.L\').0(M);$(\'.Q\').0(P);$(\'.O\').0(N);$(\'.F\').0(E);$(\'.w\').0(v);$(\'.u\').0(s);$(\'.t\').0(x);$(\'.y\').0(D);$(\'.C\').0(B);$(\'.z\').0(A);$(\'.1I\').0(3r);$(\'.1J\').0(2T);$(\'.2S\').0(2Q);$(\'.2R\').0(2V);$(\'.2W\').0(30);$(\'.2Z\').0(2Y);$(\'.2X\').0(2P);$(\'.2O\').0(2G);$(\'.2F\').0(2E);$(\'.2C\').0(2D);$(\'.2H\').0(2I);$(\'.2N\').0(2M);$(\'.2L\').0(2J);$(\'.2K\').0(31);$(\'.32\').0(3k);$(\'.3j\').0(3i);$(\'.3g\').0(3h);$(\'.3l\').0(3m);$(\'.3q\').0(3p);$(\'.3o\').0(3n);$(\'.3f\').0(3e);$(\'.37\').0(36);$(\'.35\').0(33);$(\'.34\').0(38);$(\'.39\').0(3d);$(\'.3c\').0(3b);$(\'.3a\').0(2B);$(\'.2A\').0(22);$(\'.21\').0(20);$(\'.1Y\').0(1Z);$(\'.23\').0(24);$(\'.28\').0(27);$(\'.26\').0(25);$(\'.1X\').0(1W);$(\'.1O\').0(1N);$(\'.1M\').0(1K);$(\'.1L\').0(1P);$(\'.1Q\').0(1V);$(\'.1U\').0(1T);$(\'.1R\').0(1S);$(\'.29\').0(2a);$(\'.2t\').0(2s);$(\'.2r\').0(2p);$(\'.2q\').0(2u);$(\'.2v\').0(2z);$(\'.2y\').0(2x);$(\'.2w\').0(2o);$(\'.2n\').0(2f);$(\'.2e\').0(2d);$(\'.2b\').0(2c);$(\'.2g\').0(2h);$(\'.2m\').0(2l);$(\'.2k\').0(2i);$(\'.2j\').0(2U)});', 62, 214, 'html|r1cad|53959|34273|r382f|36681|r16ec|r5f55|44612|r0799|r91df|34560|r4732|60530|59144|8004|r6d76|rfbab|3256|r5288|9991|r27a0|r5349|39371|r1907|34403|38525|3888|8380|rb67c|r82c8|48678|ra4dc|8197|rc1ac|r4403|31475|49602|r58e6|83|2222|r0484|rc90e|1081|1080|r961e|46385|r6572|8118|42119|r1dc7|48146|r11c6|r6c92|rd155|80|rbf49|r1dfd|999|r3872|8081|rf034|r6689|60604|37699|r25ee|3128|8090|r371e|r91de|8080|function|ready|document|r0e8d|38009|55443|rbfa3|8088|rd420|ra882|32231|rba5d|63141|45521|rfc3a|41878|rc6c6|51680|443|r9a25|31932|r1b07|r11b4|60731|808|r281f|r2329|53281|r99d5|59152|rf640|r7ec7|9999|re54b|65205|rf04b|r3629|32439|rab5c|rfec2|32161|rc143|55693|r2e4b|r34a8|33326|53438|r0938|8889|58893|r9bcd|r7f6f|50330|45729|r96d2|45730|r87fc|35953|45381|r183f|37444|r5b53|rbe71|61657|r148b|1993|32916|r0e0a|41621|rd26e|40282|42967|r79d3|re62d|8085|r8b97|rf3b1|54256|33855|r6cbb|r85ac|56315|r63b2|31280|r6b29|r8f7e|45295|r8bce|48241|rc9e2|48687|r411f|3150|60792|r1274|47385|r62f2|56644|45282|rf56a|r6953|47615|r8166|rae36|30716|39589|r0e11|r9760|8686|54675|58888|r22cd|rd8eb|45944|ra76c|47247|42928|r75b5|47744|rd2//代码效果参考:http://www.zidongmutanji.com/zsjx/372141.html
c9|r1f65|47548|rcb82|30640|rddf2|ra051|48995|ra854|48625|61954|rac92|r1c73|4645|52271|r69ad|54018|rccd3|43631|23500|r34e5|9001|rb9b6|61743'.split('|'), 0, {}所以,此时,我们还是得从代码逻辑上下手,一点点的分析:
先看这个,这个e
它实际在干嘛呢,其实这个函数才是核心的加密,
a是啥,再回看下函数function(p, a, c, k, e, d),然后我们传的参数:
'$(1b).1a(19(){$(\'.17\').0(18);$(\'.1c\').0(1d);$(\'.1h\').0(1g);$(\'.1f\').0(1e);$(\'.16\').0(15);$(\'.X\').0(W);$(\'.V\').0(T);$(\'.U\').0(Y);$(\'.Z\').0(14);$(\'.13\').0(12);$(\'.10\').0(11);$(\'.1i\').0(1j);$(\'.1B\').0(1A);$(\'.1z\').0(1x);$(\'.1y\').0(1C);$(\'.1D\').0(1H);$(\'.1G\').0(1F);$(\'.1E\').0(1w);$(\'.1v\').0(1o);$(\'.1n\').0(1m);$(\'.1k\').0(1l);$(\'.1p\').0(1q);$(\'.1u\').0(1t);$(\'.1s\').0(1r);$(\'.S\').0(K);$(\'.j\').0(i);$(\'.h\').0(f);$(\'.g\').0(k);$(\'.l\').0(p);$(\'.o\').0(n);$(\'.m\').0(e);$(\'.c\').0(5);$(\'.4\').0(3);$(\'.1\').0(2);$(\'.6\').0(d);$(\'.7\').0(b);$(\'.a\').0(8);$(\'.9\').0(q);$(\'.R\').0(r);$(\'.J\').0(I);$(\'.G\').0(H);$(\'.L\').0(M);$(\'.Q\').0(P);$(\'.O\').0(N);$(\'.F\').0(E);$(\'.w\').0(v);$(\'.u\').0(s);$(\'.t\').0(x);$(\'.y\').0(D);$(\'.C\').0(B);$(\'.z\').0(A);$(\'.1I\').0(3r);$(\'.1J\').0(2T);$(\'.2S\').0(2Q);$(\'.2R\').0(2V);$(\'.2W\').0(30);$(\'.2Z\').0(2Y);$(\'.2X\').0(2P);$(\'.2O\').0(2G);$(\'.2F\').0(2E);$(\'.2C\').0(2D);$(\'.2H\').0(2I);$(\'.2N\').0(2M);$(\'.2L\').0(2J);$(\'.2K\').0(31);$(\'.32\').0(3k);$(\'.3j\').0(3i);$(\'.3g\').0(3h);$(\'.3l\').0(3m);$(\'.3q\').0(3p);$(\'.3o\').0(3n);$(\'.3f\').0(3e);$(\'.37\').0(36);$(\'.35\').0(33);$(\'.34\').0(38);$(\'.39\').0(3d);$(\'.3c\').0(3b);$(\'.3a\').0(2B);$(\'.2A\').0(22);$(\'.21\').0(20);$(\'.1Y\').0(1Z);$(\'.23\').0(24);$(\'.28\').0(27);$(\'.26\').0(25);$(\'.1X\').0(1W);$(\'.1O\').0(1N);$(\'.1M\').0(1K);$(\'.1L\').0(1P);$(\'.1Q\').0(1V);$(\'.1U\').0(1T);$(\'.1R\').0(1S);$(\'.29\').0(2a);$(\'.2t\').0(2s);$(\'.2r\').0(2p);$(\'.2q\').0(2u);$(\'.2v\').0(2z);$(\'.2y\').0(2x);$(\'.2w\').0(2o);$(\'.2n\').0(2f);$(\'.2e\').0(2d);$(\'.2b\').0(2c);$(\'.2g\').0(2h);$(\'.2m\').0(2l);$(\'.2k\').0(2i);$(\'.2j\').0(2U)});',
62,
214,
'html|r1cad|53959|34273|r382f|36681|r16ec|r5f55|44612|r0799|r91df|34560|r4732|60530|59144|8004|r6d76|rfbab|3256|r5288|9991|r27a0|r5349|39371|r1907|34403|38525|3888|8380|rb67c|r82c8|48678|ra4dc|8197|rc1ac|r4403|31475|49602|r58e6|83|2222|r0484|rc90e|1081|1080|r961e|46385|r6572|8118|42119|r1dc7|48146|r11c6|r6c92|rd155|80|rbf49|r1dfd|999|r3872|8081|rf034|r6689|60604|37699|r25ee|3128|8090|r371e|r91de|8080|function|ready|document|r0e8d|38009|55443|rbfa3|8088|rd420|ra882|32231|rba5d|63141|45521|rfc3a|41878|rc6c6|51680|443|r9a25|31932|r1b07|r11b4|60731|808|r281f|r2329|53281|r99d5|59152|rf640|r7ec7|9999|re54b|65205|rf04b|r3629|32439|rab5c|rfec2|32161|rc143|55693|r2e4b|r34a8|33326|53438|r0938|8889|58893|r9bcd|r7f6f|50330|45729|r96d2|45730|r87fc|35953|45381|r183f|37444|r5b53|rbe71|61657|r148b|1993|32916|r0e0a|41621|rd26e|40282|42967|r79d3|re62d|8085|r8b97|rf3b1|54256|33855|r6cbb|r85ac|56315|r63b2|31280|r6b29|r8f7e|45295|r8bce|48241|rc9e2|48687|r411f|3150|60792|r1274|47385|r62f2|56644|45282|rf56a|r6953|47615|r8166|rae36|30716|39589|r0e11|r9760|8686|54675|58888|r22cd|rd8eb|45944|ra76c|47247|42928|r75b5|47744|rd2c9|r1f65|47548|rcb82|30640|rddf2|ra051|48995|ra854|48625|61954|rac92|r1c73|4645|52271|r69ad|54018|rccd3|43631|23500|r34e5|9001|rb9b6|61743'.split('|'),
0,
{}
那么,p就是:
'$(1b).1a(19(){$(\'.17\').0(18);$(\'.1c\').0(1d);$(\'.1h\').0(1g);$(\'.1f\').0(1e);$(\'.16\').0(15);$(\'.X\').0(W);$(\'.V\').0(T);$(\'.U\').0(Y);$(\'.Z\').0(14);$(\'.13\').0(12);$(\'.10\').0(11);$(\'.1i\').0(1j);$(\'.1B\').0(1A);$(\'.1z\').0(1x);$(\'.1y\').0(1C);$(\'.1D\').0(1H);$(\'.1G\').0(1F);$(\'.1E\').0(1w);$(\'.1v\').0(1o);$(\'.1n\').0(1m);$(\'.1k\').0(1l);$(\'.1p\').0(1q);$(\'.1u\').0(1t);$(\'.1s\').0(1r);$(\'.S\').0(K);$(\'.j\').0(i);$(\'.h\').0(f);$(\'.g\').0(k);$(\'.l\').0(p);$(\'.o\').0(n);$(\'.m\').0(e);$(\'.c\').0(5);$(\'.4\').0(3);$(\'.1\').0(2);$(\'.6\').0(d);$(\'.7\').0(b);$(\'.a\').0(8);$(\'.9\').0(q);$(\'.R\').0(r);$(\'.J\').0(I);$(\'.G\').0(H);$(\'.L\').0(M);$(\'.Q\').0(P);$(\'.O\').0(N);$(\'.F\').0(E);$(\'.w\').0(v);$(\'.u\').0(s);$(\'.t\').0(x);$(\'.y\').0(D);$(\'.C\').0(B);$(\'.z\').0(A);$(\'.1I\').0(3r);$(\'.1J\').0(2T);$(\'.2S\').0(2Q);$(\'.2R\').0(2V);$(\'.2W\').0(30);$(\'.2Z\').0(2Y);$(\'.2X\').0(2P);$(\'.2O\').0(2G);$(\'.2F\').0(2E);$(\'.2C\').0(2D);$(\'.2H\').0(2I);$(\'.2N\').0(2M);$(\'.2L\').0(2J);$(\'.2K\').0(31);$(\'.32\').0(3k);$(\'.3j\').0(3i);$(\'.3g\').0(3h);$(\'.3l\').0(3m);$(\'.3q\').0(3p);$(\'.3o\').0(3n);$(\'.3f\').0(3e);$(\'.37\').0(36);$(\'.35\').0(33);$(\'.34\').0(38);$(\'.39\').0(3d);$(\'.3c\').0(3b);$(\'.3a\').0(2B);$(\'.2A\').0(22);$(\'.21\').0(20);$(\'.1Y\').0(1Z);$(\'.23\').0(24);$(\'.28\').0(27);$(\'.26\').0(25);$(\'.1X\').0(1W);$(\'.1O\').0(1N);$(\'.1M\').0(1K);$(\'.1L\').0(1P);$(\'.1Q\').0(1V);$(\'.1U\').0(1T);$(\'.1R\').0(1S);$(\'.29\').0(2a);$(\'.2t\').0(2s);$(\'.2r\').0(2p);$(\'.2q\').0(2u);$(\'.2v\').0(2z);$(\'.2y\').0(2x);$(\'.2w\').0(2o);$(\'.2n\').0(2f);$(\'.2e\').0(2d);$(\'.2b\').0(2c);$(\'.2g\').0(2h);$(\'.2m\').0(2l);$(\'.2k\').0(2i);$(\'.2j\').0(2U)});'
a就是62
c就是214,
k就是:
'html|r1cad|53959|34273|r382f|36681|r16ec|r5f55|44612|r0799|r91df|34560|r4732|60530|59144|8004|r6d76|rfbab|3256|r5288|9991|r27a0|r5349|39371|r1907|34403|38525|3888|8380|rb67c|r82c8|48678|ra4dc|8197|rc1ac|r4403|31475|49602|r58e6|83|2222|r0484|rc90e|1081|1080|r961e|46385|r6572|8118|42119|r1dc7|48146|r11c6|r6c92|rd155|80|rbf49|r1dfd|999|r3872|8081|rf034|r6689|60604|37699|r25ee|3128|8090|r371e|r91de|8080|function|ready|document|r0e8d|38009|55443|rbfa3|8088|rd420|ra882|32231|rba5d|63141|45521|rfc3a|41878|rc6c6|51680|443|r9a25|31932|r1b07|r11b4|60731|808|r281f|r2329|53281|r99d5|59152|rf640|r7ec7|9999|re54b|65205|rf04b|r3629|32439|rab5c|rfec2|32161|rc143|55693|r2e4b|r34a8|33326|53438|r0938|8889|58893|r9bcd|r7f6f|50330|45729|r96d2|45730|r87fc|35953|45381|r183f|37444|r5b53|rbe71|61657|r148b|1993|32916|r0e0a|41621|rd26e|40282|42967|r79d3|re62d|8085|r8b97|rf3b1|54256|33855|r6cbb|r85ac|56315|r63b2|31280|r6b29|r8f7e|45295|r8bce|48241|rc9e2|48687|r411f|3150|60792|r1274|47385|r62f2|56644|45282|rf56a|r6953|47615|r8166|rae36|30716|39589|r0e11|r9760|8686|54675|58888|r22cd|rd8eb|45944|ra76c|47247|42928|r75b5|47744|rd2c9|r1f65|47548|rcb82|30640|rddf2|ra051|48995|ra854|48625|61954|rac92|r1c73|4645|52271|r69ad|54018|rccd3|43631|23500|r34e5|9001|rb9b6|61743'.split('|')
e就是0,
d就是{}
补充下,我刚才说刷新下页面,它代理有更新传的参数就会变,指的就是传的这几个值
好继续,把没有的参数补齐:
e还是没定义,仔细看代码,它作了递归调用,那就单独定义下e吧:
120的结果是1W,那么我觉得,它就是对这些数字作了字段映射
继续看下面的代码:
其实,这个if会永远成立的,所以里面的代码一定会执行的,不信看:
后面的while就把多次生成值然后给传入的d,也就是{},最后的d会生成什么暂时放一放,后面会说,再看下面一段代码:
不用多说吧,就算看不懂,猜也能猜到,最后肯定是上面做的字段映射出来的值替换会去,用正则表达式匹配
好,下面我们打断点看下:
我点完刷新,返现js文件名都变了,白打断点了,那就只能拼手速了,打上断点立即测,等它网站没更新时及时断点上:
这次断上了,来一个一个看:
同时右边有个scope,可以看到此时此刻出现的值的变化: