爬取动态html网页,requests+execjs
程序员文章站
2022-03-25 16:15:44
请求地址:https://g.hongshu.com/content/99269/15382723.html 网页内容为动态执行js所得 1、直接浏览器模拟 不用考虑页面的业务逻辑什么的,直接得到结果。 这个就不做过多分析了。 直接取就好。 2、js解析,动态执行execjs a、每个文章对应的js ......
请求地址:
网页内容为动态执行js所得
1、直接浏览器模拟
不用考虑页面的业务逻辑什么的,直接得到结果。
这个就不做过多分析了。
直接取就好。
2、js解析,动态执行execjs
import re import execjs import requests
a、每个文章对应的js内容都不一样,并且混淆js代码;导致分析起来难度增加。
1 var cryptojs=cryptojs||function(u,p){var d={},l=d.lib={},s=function(){},t=l.base={extend:function(a){s.prototype=this;var c=new s;a&&c.mixin(a);c.hasownproperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixin:function(a){for(var c in a)a.hasownproperty(c)&&(this[c]=a[c]);a.hasownproperty("tostring")&&(this.tostring=a.tostring)},clone:function(){return this.init.prototype.extend(this)}}, 2 r=l.wordarray=t.extend({init:function(a,c){a=this.words=a||[];this.sigbytes=c!=p?c:4*a.length},tostring:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words,e=a.words,j=this.sigbytes;a=a.sigbytes;this.clamp();if(j%4)for(var k=0;k<a;k++)c[j+k>>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535<e.length)for(k=0;k<a;k+=4)c[j+k>>>2]=e[k>>>2];else c.push.apply(c,e);this.sigbytes+=a;return this},clamp:function(){var a=this.words,c=this.sigbytes;a[c>>>2]&=4294967295<< 3 32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e<a;e+=4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),w=d.enc={},v=w.hex={stringify:function(a){var c=a.words;a=a.sigbytes;for(var e=[],j=0;j<a;j++){var k=c[j>>>2]>>>24-8*(j%4)&255;e.push((k>>>4).tostring(16));e.push((k&15).tostring(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j+=2)e[j>>>3]|=parseint(a.substr(j, 4 2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.latin1={stringify:function(a){var c=a.words;a=a.sigbytes;for(var e=[],j=0;j<a;j++)e.push(string.fromcharcode(c[j>>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j++)e[j>>>2]|=(a.charcodeat(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.utf8={stringify:function(a){try{return decodeuricomponent(escape(b.stringify(a)))}catch(c){throw error("malformed utf-8 data");}},parse:function(a){return b.parse(unescape(encodeuricomponent(a)))}}, 5 q=l.bufferedblockalgorithm=t.extend({reset:function(){this._data=new r.init;this._ndatabytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._ndatabytes+=a.sigbytes},_process:function(a){var c=this._data,e=c.words,j=c.sigbytes,k=this.blocksize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minbuffersize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q<a;q+=k)this._doprocessblock(e,q);q=e.splice(0,a);c.sigbytes-=j}return new r.init(q,j)},clone:function(){var a=t.clone.call(this); 6 a._data=this._data.clone();return a},_minbuffersize:0});l.hasher=q.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doreset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._dofinalize()},blocksize:16,_createhelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createhmachelper:function(a){return function(b,e){return(new n.hmac.init(a, 7 e)).finalize(b)}}});var n=d.algo={};return d}(math); 8 (function(){var u=cryptojs,p=u.lib.wordarray;u.enc.base64={stringify:function(d){var l=d.words,p=d.sigbytes,t=this._map;d.clamp();d=[];for(var r=0;r<p;r+=3)for(var w=(l[r>>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v<p;v++)d.push(t.charat(w>>>6*(3-v)&63));if(l=t.charat(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charat(64);t&&(t=d.indexof(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w< 9 l;w++)if(w%4){var v=s.indexof(d.charat(w-1))<<2*(w%4),b=s.indexof(d.charat(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789+/="}})(); 10 (function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<<j|b>>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<<j|b>>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<<j|b>>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<<j|b>>>32-j)+n}for(var t=cryptojs,r=t.lib,w=r.wordarray,v=r.hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.md5=v.extend({_doreset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])}, 11 _doprocessblock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],a=q[n+9],b=q[n+10],c=q[n+11],u=q[n+12],d=q[n+13],e=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]), 12 f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,a,12,b[9]),g=p(g,h,f,m,b,17,b[10]),m=p(m,g,h,f,c,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,d,12,b[13]),g=p(g,h,f,m,e,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,c,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,b,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,a,5,b[24]),h=d(h,f,m,g,e,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,d,5,b[28]),h=d(h,f, 13 m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,c,16,b[34]),m=l(m,g,h,f,e,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,b,23,b[39]),f=l(f,m,g,h,d,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,a,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m, 14 e,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,b,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,d,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,c,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,a,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_dofinalize:function(){var b=this._data,n=b.words,a=8*this._ndatabytes,c=8*b.sigbytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/ 15 4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigbytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.md5=v._createhelper(r);t.hmacmd5=v._createhmachelper(r)})(math); 16 (function(){var u=cryptojs,p=u.lib,d=p.base,l=p.wordarray,p=u.algo,s=p.evpkdf=d.extend({cfg:d.extend({keysize:4,hasher:p.md5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keysize,p=p.iterations;u.length<q;){n&&s.update(n);var n=s.update(d).finalize(r);s.reset();for(var a=1;a<p;a++)n=s.finalize(n),s.reset();b.concat(n)}b.sigbytes=4*q;return b}});u.evpkdf=function(d,l,p){return s.create(p).compute(d, 17 l)}})(); 18 cryptojs.lib.cipher||function(u){var p=cryptojs,d=p.lib,l=d.base,s=d.wordarray,t=d.bufferedblockalgorithm,r=p.enc.base64,w=p.algo.evpkdf,v=d.cipher=t.extend({cfg:l.extend(),createencryptor:function(e,a){return this.create(this._enc_xform_mode,e,a)},createdecryptor:function(e,a){return this.create(this._dec_xform_mode,e,a)},init:function(e,a,b){this.cfg=this.cfg.extend(b);this._xformmode=e;this._key=a;this.reset()},reset:function(){t.reset.call(this);this._doreset()},process:function(e){this._append(e);return this._process()}, 19 finalize:function(e){e&&this._append(e);return this._dofinalize()},keysize:4,ivsize:4,_enc_xform_mode:1,_dec_xform_mode:2,_createhelper:function(e){return{encrypt:function(b,k,d){return("string"==typeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return("string"==typeof k?c:a).decrypt(e,b,k,d)}}}});d.streamcipher=v.extend({_dofinalize:function(){return this._process(!0)},blocksize:1});var b=p.mode={},x=function(e,a,b){var c=this._iv;c?this._iv=u:c=this._prevblock;for(var d=0;d<b;d++)e[a+d]^= 20 c[d]},q=(d.blockciphermode=l.extend({createencryptor:function(e,a){return this.encryptor.create(e,a)},createdecryptor:function(e,a){return this.decryptor.create(e,a)},init:function(e,a){this._cipher=e;this._iv=a}})).extend();q.encryptor=q.extend({processblock:function(e,a){var b=this._cipher,c=b.blocksize;x.call(this,e,a,c);b.encryptblock(e,a);this._prevblock=e.slice(a,a+c)}});q.decryptor=q.extend({processblock:function(e,a){var b=this._cipher,c=b.blocksize,d=e.slice(a,a+c);b.decryptblock(e,a);x.call(this, 21 e,a,c);this._prevblock=d}});b=b.cbc=q;q=(p.pad={}).pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigbytes%c,d=c<<24|c<<16|c<<8|c,l=[],n=0;n<c;n+=4)l.push(d);c=s.create(l,c);a.concat(c)},unpad:function(a){a.sigbytes-=a.words[a.sigbytes-1>>>2]&255}};d.blockcipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformmode==this._enc_xform_mode)var c=a.createencryptor;else c=a.createdecryptor,this._minbuffersize=1;this._mode=c.call(a, 22 this,b&&b.words)},_doprocessblock:function(a,b){this._mode.processblock(a,b)},_dofinalize:function(){var a=this.cfg.padding;if(this._xformmode==this._enc_xform_mode){a.pad(this._data,this.blocksize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blocksize:4});var n=d.cipherparams=l.extend({init:function(a){this.mixin(a)},tostring:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).openssl={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684, 23 1701076831]).concat(a).concat(b):b).tostring(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigbytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.serializablecipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createencryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blocksize:a.blocksize,formatter:d.format})}, 24 decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createdecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).openssl={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keysize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigbytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.passwordbasedcipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d, 25 b.keysize,b.ivsize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixin(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keysize,b.ivsize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); 26 (function(){for(var u=cryptojs,p=u.lib.blockcipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],f=a[z],g=a[f],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*g^65537*f^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[g^z]]],j^=a[a[j]]):e=j=1}var h=[0,1,2,4,8, 27 16,32,64,128,27,54],d=d.aes=p.extend({_doreset:function(){for(var a=this._key,c=a.words,d=a.sigbytes/4,a=4*((this._nrounds=d+6)+1),e=this._keyschedule=[],j=0;j<a;j++)if(j<d)e[j]=c[j];else{var k=e[j-1];j%d?6<d&&4==j%d&&(k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=h[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invkeyschedule=[];for(d=0;d<a;d++)j=a-d,k=d%4?e[j]:e[j-4],c[d]=4>d||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>> 28 8&255]]^n[l[k&255]]},encryptblock:function(a,b){this._docryptblock(a,b,this._keyschedule,t,r,w,v,l)},decryptblock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._docryptblock(a,c,this._invkeyschedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_docryptblock:function(a,b,c,d,e,j,l,f){for(var m=this._nrounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r<m;r++)var q=d[g>>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t= 29 d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keysize:8});u.aes=p._createhelper(d)})();var _0x3fd7=['split','fromcharcode','fqzuq','xznnm','undefined','qhdvc','yfzjd','stylesheets','addrule','.context_kw','content:\x20\x22','::before{content:\x20\x22','pad','zeropadding','clamp','sigbytes','words','nhezs','ybdyq','trpqn','aixex','prototype','uzvib','wu0l5htlyctrnwrzi8ph1amdqdew5nwdygjang7ckfvp24hy4pgf10n2dutttdcvgrjf4kbf8xhqtnzs46detaeq9m/+k43adrzl8akkiso9gwq+yezamy4p+hwdk4c0cuer2afwkzujesnswnw8fu7idewugjmzns0s2ejcwraqy0yikozo3sm3me9npmh4z/v9xcaz7cbpd/wh//tmfq==','latin1','d8215dba71e02e3a','window','location','href','enc','parse','84219dd60f203784','146385f634c9cb00','aes','tostring','createelement','style','setattribute','type','async','link','getelementsbytagname','usvog','onotz','length','parentnode','insertbefore','head','4|5|1|2|3|0'];(function(_0xd15c2c,_0x125315){var _0x3fc244=function(_0x99a567){while(--_0x99a567){_0xd15c2c['push'](_0xd15c2c['shift']());}};_0x3fc244(++_0x125315);}(_0x3fd7,0x163));var _0x73fd=function(_0x2f94ab,_0x3d61d2){_0x2f94ab=_0x2f94ab-0x0;var _0x2a0183=_0x3fd7[_0x2f94ab];return _0x2a0183;};cryptojs[_0x73fd('0x0')][_0x73fd('0x1')]={'pad':function(_0x2e3abc,_0x17b220){var _0x50f432=_0x17b220*0x4;_0x2e3abc[_0x73fd('0x2')]();_0x2e3abc[_0x73fd('0x3')]+=_0x50f432-(_0x2e3abc['sigbytes']%_0x50f432||_0x50f432);},'unpad':function(_0x42aa5f){var _0x425c89={'nhezs':function _0x5d46a3(_0x4b6a4d,_0x4d0c44){return _0x4b6a4d&_0x4d0c44;},'ybdyq':function _0x57d6ec(_0x15327b,_0x34b2d9){return _0x15327b>>>_0x34b2d9;},'trpqn':function _0x478429(_0x170819,_0x34c68c){return _0x170819-_0x34c68c;},'aixex':function _0xbb4864(_0x34c31e,_0x527191){return _0x34c31e*_0x527191;},'tytse':function _0x1b158d(_0x2b52d2,_0xdfe272){return _0x2b52d2%_0xdfe272;},'uvvko':function _0x33ef49(_0x29d074,_0x35b7ec){return _0x29d074+_0x35b7ec;}};var _0x57d83c=_0x42aa5f[_0x73fd('0x4')];var _0x5e6b25=_0x42aa5f[_0x73fd('0x3')]-0x1;while(!_0x425c89[_0x73fd('0x5')](_0x425c89['ybdyq'](_0x57d83c[_0x425c89[_0x73fd('0x6')](_0x5e6b25,0x2)],_0x425c89[_0x73fd('0x7')](0x18,_0x425c89[_0x73fd('0x8')](_0x425c89['tytse'](_0x5e6b25,0x4),0x8))),0xff)){_0x5e6b25--;}_0x42aa5f[_0x73fd('0x3')]=_0x425c89['uvvko'](_0x5e6b25,0x1);}};string[_0x73fd('0x9')]['endwith']=function(_0x218611){var _0x28cdae={'uzvib':function _0xef9127(_0x3734d2,_0xcf4da5){return _0x3734d2+_0xcf4da5;}};var _0x1997b7=new regexp(_0x28cdae[_0x73fd('0xa')](_0x218611,'$'));return _0x1997b7['test'](this);};var data=_0x73fd('0xb');var keywords=cryptojs['enc'][_0x73fd('0xc')]['parse'](_0x73fd('0xd'));var iv='';try{if(top[_0x73fd('0xe')][_0x73fd('0xf')][_0x73fd('0x10')]!=window[_0x73fd('0xf')]['href']){top['window'][_0x73fd('0xf')][_0x73fd('0x10')]=window['location'][_0x73fd('0x10')];}iv=cryptojs[_0x73fd('0x11')]['latin1'][_0x73fd('0x12')](_0x73fd('0x13'));}catch(_0x3f9afc){iv=cryptojs[_0x73fd('0x11')]['latin1'][_0x73fd('0x12')](_0x73fd('0x14'));}var decrypted=cryptojs[_0x73fd('0x15')]['decrypt'](data,keywords,{'iv':iv,'padding':cryptojs[_0x73fd('0x0')][_0x73fd('0x1')]});var secwords=decrypted[_0x73fd('0x16')](cryptojs['enc']['utf8'])['split'](',');var words=new array(secwords['length']);var n=document[_0x73fd('0x17')](_0x73fd('0x18'));n[_0x73fd('0x19')](_0x73fd('0x1a'),'text/css');n['setattribute'](_0x73fd('0x1b'),!![]);var jslast=function(){var _0xb5fa76={'usvog':'head','nutzf':_0x73fd('0x1c'),'onotz':function _0x491998(_0x427698,_0xf5c4af){return _0x427698>_0xf5c4af;}};var _0x34705e=document[_0x73fd('0x1d')](_0xb5fa76[_0x73fd('0x1e')])[0x0]['getelementsbytagname'](_0xb5fa76['nutzf']);if(_0x34705e&&_0xb5fa76[_0x73fd('0x1f')](_0x34705e[_0x73fd('0x20')],0x0)){return _0x34705e[0x0];}else{return null;}}();if(jslast){jslast[_0x73fd('0x21')][_0x73fd('0x22')](n,jslast);}else{document[_0x73fd('0x1d')](_0x73fd('0x23'))[0x0]['appendchild'](n);}for(var i=0x0;i<secwords[_0x73fd('0x20')];i++){var _0x52ae06=_0x73fd('0x24')[_0x73fd('0x25')]('|'),_0x988369=0x0;while(!![]){switch(_0x52ae06[_0x988369++]){case'0':words[i]=string[_0x73fd('0x26')](_0x56efe1);continue;case'1':var _0x59eaa6=function(_0x12c8ec){var _0x29f3f3={'fqzuq':function _0x385dbc(_0x40a48a,_0x1372be){return _0x40a48a+_0x1372be;},'hvoxb':function _0xcc22f2(_0x1488c0,_0x410d6b){return _0x1488c0*_0x410d6b;},'xznnm':function _0x340d3f(_0x336390,_0x55f02b){return _0x336390===_0x55f02b;}};return _0x29f3f3[_0x73fd('0x27')](_0x12c8ec,_0x29f3f3['hvoxb'](0x3,+!_0x29f3f3[_0x73fd('0x28')](typeof document,_0x73fd('0x29'))));};continue;case'2':_0x56efe1=_0x2e4b4b(_0x56efe1);continue;case'3':_0x56efe1=_0x59eaa6(_0x56efe1);continue;case'4':var _0x56efe1=secwords[i];continue;case'5':var _0x2e4b4b=function(_0x5def7b){var _0x321f79={'qhdvc':function _0x368bec(_0x1288e4,_0x1c5ff0){return _0x1288e4-_0x1c5ff0;},'yfzjd':function _0x4161ec(_0x1c7cf6,_0x54f7a9){return _0x1c7cf6-_0x54f7a9;}};return _0x5def7b%0x2?_0x321f79[_0x73fd('0x2a')](_0x5def7b,0x2):_0x321f79[_0x73fd('0x2b')](_0x5def7b,0x4);};continue;}break;}}for(var i=0x0;i<words[_0x73fd('0x20')];i++){try{document[_0x73fd('0x2c')][0x0][_0x73fd('0x2d')](_0x73fd('0x2e')+i+'::before',_0x73fd('0x2f')+words[i]+'\x22');}catch(_0x3c272e){document[_0x73fd('0x2c')][0x0]['insertrule'](_0x73fd('0x2e')+i+_0x73fd('0x30')+words[i]+'\x22}',document['stylesheets'][0x0]['cssrules'][_0x73fd('0x20')]);}}
b、分析得到js逻辑后,执行eval代码错误,兼容性处理(windows、document根本没有)
1 _0x3fd7 = ['split', 'fromcharcode', 'fqzuq', 'xznnm', 'undefined', 'qhdvc', 'yfzjd', 'stylesheets', 'addrule', '.context_kw', 'content:\x20\x22', '::before{content:\x20\x22', 'pad', 'zeropadding', 'clamp', 'sigbytes', 'words', 'nhezs', 'ybdyq', 'trpqn', 'aixex', 'prototype', 'uzvib', 'wu0l5htlyctrnwrzi8ph1amdqdew5nwdygjang7ckfvp24hy4pgf10n2dutttdcvgrjf4kbf8xhqtnzs46detaeq9m/+k43adrzl8akkiso9gwq+yezamy4p+hwdk4c0cuer2afwkzujesnswnw8fu7idewugjmzns0s2ejcwraqy0yikozo3sm3me9npmh4z/v9xcaz7cbpd/wh//tmfq==', 'latin1', 'd8215dba71e02e3a', 'window', 'location', 'href', 'enc', 'parse', '84219dd60f203784', '146385f634c9cb00', 'aes', 'tostring', 'createelement', 'style', 'setattribute', 'type', 'async', 'link', 'getelementsbytagname', 'usvog', 'onotz', 'length', 'parentnode', 'insertbefore', 'head', '4|5|1|2|3|0']; 2 3 cnt = 0x163 4 while cnt > 0: 5 _0x3fd7.append(_0x3fd7.pop(0)) 6 cnt = cnt - 1 7 print(_0x3fd7) 8 9 with open('content.js', 'r') as f: 10 text = f.read() 11 for i, item in enumerate(_0x3fd7): 12 text = text.replace("_0x73fd('" + str(hex(i)) + "')", "'" + eval('_0x3fd7[' + str(i) + ']') + "'") 13 14 with open('content.dec.js', 'w') as f: 15 f.write(text)
c、所以要对js代码进行一次清洗。
js = clear_js(js)
d、得到解密结果,整理正文输出
node = execjs.compile(js) words = node.eval('words')
上一篇: 点分治详解
下一篇: python-批量解压zip文件