как обнаружить упаковщиков и украсить этот js

#javascript #jquery #hex #decode #packer

#javascript #jquery #шестнадцатеричный #расшифровать #упаковщик

Вопрос:

Как обнаружить упаковщиков и украсить этот JS ниже? Я пробовал инструмент hexdecoder, такой как:http://ddecode.com/hexdecoder и http://jsbeautifier.org и т.д.
Но после декодирования js не работает и не декодируется должным образом.

JS:

 eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a))) ((c=c%a)>35?String.fromCharCode(c 29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('4f 3B=["(3($){'31 38';X.1g=X.1g||3(){m R X()};$.p=3(g){4 h=$.37({},$.p.22,g);4 i=R $.p.1u();4 j=R $.p.1M(h.F);4 k=(h.x?R $.p.x():v);4 l=8;3 A(){4 d;j.2p(3(a,b,c){6(k){k.20(a,c)}h.21.y(8,a,c,b)});V();6(kamp;amp;k.1B()){D();d=k.1O();i.1p(3(){4 a;6(d>1){1w(d);a=1d(G);$('N, 1c').Q(a)}w{V()}})}m l}A();3 V(){1G();h.F.1j(S)}3 S(){4 a,1o;a=i.T(h.F);1o=1d();6(a>=1o){6(29()>=h.2a){D();2k(3(){1b(a)})}w{1b(a)}}}3 D(){h.F.36('1j',S)}3 1G(){$(h.1i).11()}3 1d(a){4 b,18;b=$(h.q).I(h.C).P();6(b.1J()===0){m 0}18=b.2g().2j b.17();6(!a){18 =h.2n}m 18}3 1b(d,e){4 f;f=$(h.1k).1N('U');6(!f){6(h.1P){$(h.q).I(h.C).P().15(h.1P)}m D()}6(h.14amp;amp;$.35(h.14)){6(h.14(d,f)===v){m}}j.1T(d,f);D();1U();1X(f,3(a,b){4 c=h.1Z.y(8,b),1q;6(c!==v){$(b).11();1q=$(h.q).I(h.C).P();1q.15(b);$(b).1s()}f=$(h.1k,a).1N('U');$(h.1i).34($(h.1i,a));23();1G();6(f){V()}w{D()}h.26.y(8,b);6(e){e.y(8)}})}3 1X(b,c,d){4 e=[],q,27=X.1g(),13,12;d=d||h.2b;$.2c(b,2e,3(a){q=$(h.q,a).2f(0);6(0===q.B){q=$(a).33(h.q).2f(0)}6(q){q.I(h.C).32(3(){e.1A(8)})}6(c){12=8;13=X.1g()-27;6(13<d){2m(3(){c.y(12,a,e)},d-13)}w{c.y(12,a,e)}}},'N')}3 1w(a){4 b=1d(G);6(b>0){1b(b,3(){D();6((j.M(b) 1)<a){1w(a);$('N,1c').1R({'Q':b},30,'1K')}w{$('N,1c').1R({'Q':b},1L,'1K');V()}})}}3 29(){4 a=i.T(h.F);m j.M(a)}3 1F(){4 a=$('.19');6(a.1J()===0){a=$('<L K=\"19\">' h.19 '</L>');a.11()}m a}3 1U(){4 a=1F(),J;6(h.1m!==v){h.1m(a)}w{J=$(h.q).I(h.C).P();J.15(a);a.1s()}}3 23(){4 a=1F();a.1Q()}3 1n(a){4 b=$('.16');6(b.1J()===0){b=$('<L K=\"16\"><a U=\"\">' h.16 '2Y 2W</a></L>');b.11()}$('a',b).2V('1W').2Q('1W',3(){1Y();a.y();m v});m b}3 2k(a){4 b=1n(a),J;J=$(h.q).I(h.C).P();J.15(b);b.1s()}3 1Y(){4 a=1n();a.1Q()}};$.p.22={q:'.1r-2O',F:$(z),C:'.2N-2M',1i:'#1r-24',1k:'#1r-24-2J-2H a',19:'<i K=\"H H-2G H-2E H-2D\"></i>',2b:1L,2a:2,16:'<i K=\"H H-2C\"></i>',2n:-2B,x:G,21:3(){},14:3(){},1Z:3(){},26:3(){2A.2z.2y();2x.2w.2v();2u.2t.2l();2s.1A(['2r'])},1m:v};$.p.1u=3(){4 c=v;4 d=v;4 e=8;3 A(){$(z).2l(3(){c=G})}A();8.1p=3(a){$('N,1c').Q(0);6(!d){6(!c){2m(3(){e.1p(a)},1)}w{a.y();d=G}}};8.T=3(a){4 b,1I;6(a.2c(0)===z){b=a.Q()}w{b=a.2g().2j}1I=a.17();m b 1I}};$.p.1M=3(){4 c=[[0,1l.1H.2P()]];4 d=3(){};4 e=1;4 f=R $.p.1u();3 A(){$(z).1j(S)}A();3 S(){4 a,O,1h,1E,1D;a=f.T($(z));O=M(a);1h=2h(a);6(e!==O){1E=1h[0];1D=1h[1];d.y({},O,1E,1D)}e=O}3 M(a){1C(4 i=(c.B-1);i>0;i--){6(a>c[i][0]){m i 1}}m 1}8.M=3(a){a=a||f.T($(z));m M(a)};3 2h(a){1C(4 i=(c.B-1);i>=0;i--){6(a>c[i][0]){m c[i]}}m 2e}8.2p=3(a){d=a};8.1T=3(a,b){c.1A([a,b])}};$.p.x=3(){4 e=v;4 f=v;3 A(){f=!!(z.xamp;amp;x.Yamp;amp;x.1f);f=v}A();8.20=3(a,b){8.2d({W:a},'',b)};8.1B=3(){m(8.1z()!==v)};8.1O=3(){4 a;6(8.1B()){a=8.1z();m a.W}m 1};8.1z=3(){4 a,Z,1x;6(f){Z=x.2F;6(Zamp;amp;Z.p){m Z.p}}w{a=(z.1H.28.1v(0,7)==='/');6(a){1x=2I(z.1H.28.25('/',''),10);m{W:1x}}}m v};8.2d=3(a,b,c){6(e){8.1f(a,b,c)}w{8.Y(a,b,c)}};8.Y=3(a,b,c){4 d;6(f){x.Y({p:a},b,c)}w{d=(a.W>0?'/' a.W:'')}e=G};8.1f=3(a,b,c){6(f){x.1f({p:a},b,c)}w{8.Y(a,b,c)}}}})(2K);3 2L(e,t){6(e.1a(\"<\")!=-1){4 n=e.2q(\"<\");1C(4 r=0;r<n.B;r  ){6(n[r].1a(\">\")!=-1){n[r]=n[r].1v(n[r].1a(\">\") 1,n[r].B)}}e=n.2R(\"\")}t=t<e.B-1?t:e.B-2;2S(e.2T(t-1)!=\" \"amp;amp;e.1a(\" \",t)!=-1)t  ;e=e.1v(0,t-1);m e \"\"}3 2U(e,t,n){4 r=1l.1V(e);4 i=1l.1V(n);4 s=/\\/s([2X]?[0-5]?[0-9]?[0-9]|2Z)[^0-9]/;4 o='<a U=\"' t '\" 2o=\"\"><1y 2i=\"\" 1t=\"#\" 1S=\"' E '1e\" 17=\"' E '1e\"/></a>';4 u=r.39(\"1y\");6(u.B>=1){o='<a K=\"3a\" U=\"' t '\" 3b-2o=\"' n '\"><1y 2i=\"' n '\" 1t=\"' u[0].1t.25(s,\"/s\" E \"-c/\") '\" 1S=\"' E '1e\" 17=\"' E '1e\"/><L K=\"3c\"></L></a>'}4 a=o;r.3d=a}4 E=3e","\3f","\3o\3u\3l\3n\3h","\3f\3f\3f\3w\3t\3p\3s\3h\3n\3k\3p\3f\3G\3i\3j\3f\3f\3n\3w\3f\3f\3h\3q\3n\3o\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3j\3g\3h\3t\3j\3p\3f\3f\3f\3n\3i\3o\3f\3s\3k\3p\3h\3i\3n\3p\3g\3j\3f\3f\3f\3f\3f\3w\3i\3l\3o\3g\3f\3g\3l\3o\3g\3f\3q\3n\3o\3h\3k\3j\3I\3f\3s\3i\3l\3l\3f\3z\3n\3p\3r\3k\3z\3f\3n\3p\3n\3h\3f\3l\3g\3p\3m\3h\3q\3f\3n\3h\3g\3v\3f\3o\3h\3k\3u\3A\3o\3s\3j\3k\3l\3l\3f\3n\3z\3q\3f\3o\3s\3j\3k\3l\3l\3E\3k\3p\3h\3i\3n\3p\3g\3j\3f\3h\3j\3t\3g\3f\3w\3i\3f\3w\3n\3p\3r\3f\3g\3l\3f\3s\3l\3i\3o\3o\3f\3r\3n\3G\3f\3m\3g\3h\3E\3t\3j\3y\3i\3m\3g\3P\3t\3v\3f\3q\3h\3v\3l\3f\3s\3t\3j\3y\3i\3m\3g\3P\3t\3v\3f\3l\3i\3o\3h\3f\3o\3s\3j\3k\3l\3l\3C\3k\3u\3f\3p\3g\3z\3f\3o\3s\3j\3k\3l\3l\3A\3q\3i\3p\3r\3l\3g\3j\3f\3m\3g\3h\3E\3t\3j\3j\3g\3p\3h\3J\3s\3j\3k\3l\3l\3Q\3w\3w\3o\3g\3h\3f\3q\3j\3g\3w\3f\3j\3g\3o\3g\3h\3f\3u\3i\3m\3g\3f\43\3i\3h\3g\3f\3u\3t\3o\3q\3J\3h\3i\3h\3g\3f\3o\3h\3i\3h\3g\3Q\3F\3X\3f\3f\3q\3n\3r\3g\3f\3o\3g\3l\3w\3f\3r\3n\3w\3w\3C\3n\3v\3g\3f\3F\3g\3w\3k\3j\3g\3y\3i\3m\3g\3E\3q\3i\3p\3m\3g\3f\3i\3w\3h\3g\3j\3f\3h\3j\3n\3m\3m\3g\3j\3f\3q\3g\3n\3m\3q\3h\3f\3h\3q\3j\3g\3o\3q\3k\3l\3r\3f\3l\3k\3i\3r\3g\3j\3f\3n\3p\3r\3g\3N\3Q\3w\3f\3u\3i\3m\3n\3p\3i\3h\3g\3f\3F\3k\3r\3I\3f\3m\3g\3h\3A\3o\3s\3j\3k\3l\3l\3A\3h\3q\3j\3g\3o\3q\3k\3l\3r\3f\3u\3N\3f\3j\3g\3u\3l\3i\3s\3g\3J\3h\3i\3h\3g\3f\3p\3k\3z\3f\3s\3t\3j\3y\3i\3m\3g\3F\3j\3g\3i\3O\3f\3u\3i\3m\3n\3p\3i\3h\3n\3k\3p\3f\3o\3s\3j\3k\3l\3l\3f\3p\3g\3N\3h\3f\3r\3k\3s\3t\3v\3g\3p\3h\3f\3s\3t\3o\3h\3k\3v\3K\3k\3i\3r\3g\3j\3y\3j\3k\3s\3f\3m\3g\3h\3A\3h\3j\3n\3m\3m\3g\3j\3f\3o\3s\3j\3C\3q\3j\3g\3o\3q\3k\3l\3r\3f\3w\3k\3j\3s\3g\3J\3s\3j\3k\3l\3l\3C\3k\3u\3f\3s\3t\3j\3K\3i\3o\3h\3L\3h\3g\3v\3f\3F\3l\3k\3m\3f\3w\3i\3r\3g\3L\3p\3f\3o\3j\3s\3f\3t\3h\3n\3l\3f\3o\3t\3F\3o\3h\3j\3n\3p\3m\3f\3u\3i\3m\3n\3p\3i\3h\3g\3C\3k\3y\3i\3m\3g\3f\3u\3i\3m\3g\3P\3t\3v\3f\3n\3v\3m\3f\3m\3g\3h\3J\3h\3i\3h\3g\3f\3u\3t\3o\3q\3f\3q\3i\3G\3g\3y\3i\3m\3g\3f\3w\3k\3j\3f\3t\3j\3l\3y\3i\3m\3g\3f\3o\3s\3j\3Q\3w\3w\3o\3g\3h\3f\3m\3g\3h\3A\3l\3k\3i\3r\3g\3j\3f\3q\3n\3r\3g\3A\3u\3i\3m\3n\3p\3i\3h\3n\3k\3p\3f\3l\3k\3s\3i\3h\3n\3k\3p\3f\3z\3p\3r\3Y\3g\3n\3m\3q\3h\3f\3o\3n\4b\3g\3f\3o\3z\3n\3p\3m\3f\3Z\3D\3D\3D\3f\3u\3i\3m\3n\3p\3m\3f\3i\3h\3h\3j\3f\3m\3g\3h\3y\3i\3m\3g\3f\3p\3k\3p\3g\3l\3g\3w\3h\3f\3j\3g\3v\3k\3G\3g\3f\3i\3p\3n\3v\3i\3h\3g\3f\3z\3n\3r\3h\3q\3f\3u\3t\3o\3q\3y\3i\3m\3g\3o\3f\3o\3q\3k\3z\3A\3l\3k\3i\3r\3g\3j\3f\3m\3g\3h\44\3l\3g\3v\3g\3p\3h\3R\3I\3L\3r\3f\3s\3l\3n\3s\3O\3f\3l\3k\3i\3r\3L\3h\3g\3v\3o\3f\3j\3g\3v\3k\3G\3g\3A\3h\3j\3n\3m\3m\3g\3j\3f\3k\3p\3K\3k\3i\3r\3L\3h\3g\3v\3o\3f\3o\3g\3h\3y\3i\3m\3g\3f\3k\3p\3y\3i\3m\3g\3E\3q\3i\3p\3m\3g\3f\3r\3g\3w\3i\3t\3l\3h\3o\3f\3j\3g\3v\3k\3G\3g\3A\3l\3k\3i\3r\3g\3j\3f\3u\3i\3m\3g\3j\3f\3j\3g\3u\3l\3i\3s\3g\3f\3k\3p\4c\3g\3p\3r\3g\3j\3E\3k\3v\3u\3l\3g\3h\3g\3f\3o\3h\3i\3j\3h\3C\3n\3v\3g\3f\3q\3i\3o\3q\3f\3m\3g\3h\3A\3s\3t\3j\3j\3g\3p\3h\3A\3u\3i\3m\3g\3f\3h\3j\3n\3m\3m\3g\3j\3y\3i\3m\3g\3C\3q\3j\3g\3o\3q\3k\3l\3r\3f\3l\3k\3i\3r\3g\3j\43\3g\3l\3i\3I\3f\3m\3g\3h\3f\3t\3u\3r\3i\3h\3g\3J\3h\3i\3h\3g\3f\3p\3t\3l\3l\3f\3g\45\3f\3k\3w\3w\3o\3g\3h\3f\3m\3g\3h\3E\3t\3j\3y\3i\3m\3g\3F\3j\3g\3i\3O\3f\3i\3l\3h\3f\3h\3k\3u\3f\3o\3q\3k\3z\3A\3h\3j\3n\3m\3m\3g\3j\3f\3l\3k\3i\3r\3f\3o\3g\3h\3C\3n\3v\3g\3k\3t\3h\3f\3h\3q\3j\3g\3o\3q\3k\3l\3r\3S\3i\3j\3m\3n\3p\3f\3h\3n\3h\3l\3g\3f\3k\3p\3E\3q\3i\3p\3m\3g\3y\3i\3m\3g\3f\3o\3u\3l\3n\3h\3f\3A\3h\3j\3i\3s\3O\3y\3i\3m\3g\3G\3n\3g\3z\3f\3A\3m\3i\45\3f\3z\3n\3r\3m\3g\3h\3o\3f\3h\3z\3h\3h\3j\3f\3m\3k\3f\3u\3l\3t\3o\3k\3p\3g\3f\3m\3i\3u\3n\3f\3u\3i\3j\3o\3g\3f\4d\40\3R\3S\3K\3f\40\3R\3f\4e\3D\3D\3f\3u\3l\3t\3o\3f\3o\3u\3n\3p\3f\46\3N\3f\3o\3h\3i\3h\3g\3f\3s\3k\3m\3f\3l\3n\3p\3O\3f\3u\3i\3j\3o\3g\3L\3p\3h\3f\3k\3l\3r\3g\3j\3f\3X\4g\3t\3g\3j\3I\3f\3j\3g\3v\3k\3G\3g\3Y\3h\3v\3l\3C\3i\3m\3f\3k\3t\3h\3g\3j\3f\3r\3i\3h\3g\3f\3u\3k\3o\3h\3o\3f\3h\3k\3J\3h\3j\3n\3p\3m\3f\3k\3p\3f\3X\3k\3n\3p\3f\3z\3q\3n\3l\3g\3f\3s\3q\3i\3j\47\3h\3f\3s\3j\3g\3i\3h\3g\3J\3t\3v\3v\3i\3j\3I\47\3p\3r\3C\3q\3t\3v\3F\3f\3k\3w\3w\3f\3S\3k\3j\3g\3f\3D\3Z\3f\3K\3k\3i\3r\3f\3Z\4h\3D\3D\3f\46\3D\3D\3f\3t\3o\3g\3f\3g\3i\3s\3q\3f\3w\3n\3l\3h\3g\3j\3f\3j\3g\3u\3l\3i\3s\3g\4i\3n\3h\3q\3f\3n\3o\40\3t\3p\3s\3h\3n\3k\3p\3f\3t\3p\3F\3n\3p\3r\3f\3g\3N\3h\3g\3p\3r\3f\3o\3h\3j\3n\3s\3h\3f\3m\3g\3h\44\3l\3g\3v\3g\3p\3h\3o\3R\3I\3C\3i\3m\3P\3i\3v\3g\3f\3h\3k\3u\3h\3n\3u\3f\3r\3i\3h\3i\3f\3k\3G\3g\3j\3l\3i\3I\3f\3n\3p\3p\3g\3j\3Y\3C\3S\3K\3f\4j\4k\3D","","\3w\3j\3k\3v\3E\3q\3i\3j\3E\3k\3r\3g","\3j\3g\3u\3l\3i\3s\3g","\48\3z\4l","\48\3F","\3m"];4m(3T(3U,3V,3x,3M,3H,41){3H=3T(3x){3W(3x<3V?3B[4]:3H(4n(3x/3V))) ((3x=3x%3V)>35?49[3B[5]](3x 29):3x.4o(36))};4a(!3B[4][3B[6]](/^/,49)){42(3x--){41[3H(3x)]=3M[3x]||3H(3x)};3M=[3T(3H){3W 41[3H]}];3H=3T(){3W 3B[7]};3x=1};42(3x--){4a(3M[3x]){3U=3U[3B[6]](4p 4q(3B[8] 3H(3x) 3B[8],3B[9]),3M[3x])}};3W 3U}(3B[0],4r,4s,3B[3][3B[2]](3B[1]),0,{}))',62,277,'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||x7C|x65|x74|x61|x72|x6F|x6C|x67|x69|x73|x6E|x68|x64|x63|x75|x70|x6D|x66|_0x936bx3|x50|x77|x5F|_0x9d83|x54|x30|x43|x62|x76|_0x936bx5|x79|x53|x4C|x49|_0x936bx4|x78|x6B|x4E|x4F|x42|x4D|function|_0x936bx1|_0x936bx2|return|x6A|x48|x31|x46|_0x936bx6|while|x44|x45|x71|x34|x41|x5C|String|if|x7A|x52|x58|x35|var|x51|x36|x57|x32|x37|x2B|eval|parseInt|toString|new|RegExp|62|201'.split('|'),0,{}))
  

Пожалуйста, помогите, есть ли какое-либо решение?

Комментарии:

1. Возможно, вы сможете правильно настроить табуляцию / отступ с помощью приукрашивателя, но без sourcemap в исходном коде вы не сможете повторно увеличить какой-либо из уменьшенных переменных или имен функций…

2. хорошо, но после prettify js не работает.

3. @anied: ни один декодер не выдает действительный код JavaScript.

Ответ №1:

Эти разработчики пытаются распаковать обычные упаковщики. Либо они устарели, либо кто-то написал новый упаковщик, который использует тот же формат, что и существующий, что обманывает их.

Вы можете распаковать его (и многие другие упаковщики), исправив eval и распечатав его:

 var old_eval = window.eval;

window.eval = function(code) {
    console.log('Running', code);

    return old_eval(code);
};
  

Когда вы выполняете свой код, он распаковывается нормально, но также выводит код на вашу консоль.

Комментарии:

1. @Aariba: Откройте консоль JavaScript вашего браузера, запустите мой код для исправления window.eval , затем запустите свой код. Затем вы можете увидеть, как распечатывается распакованный код.

2. привет, еще раз спасибо, сделал это, он распакован, но выдает ошибку VM902:1 Uncaught ReferenceError: jQuery is not defined at eval (eval at <anonymous> (unknown source), <anonymous>:1:6175) at window.eval (<anonymous>:6:12) at eval (eval at <anonymous> (unknown source), <anonymous>:1:9451) at window.eval (<anonymous>:6:12) at <anonymous>:1:1

3. @Aariba: Я не знаю, будет ли это работать в инструментах разработчика IE, попробуйте Firefox или Chrome.

4. Процесс Chrome: Быстро я запускаю ваш код в консоли браузера, после выполнения вашего кода я помещаю свой код под следующей строкой, затем запускаю свой код. Затем он распакован, но получение Uncaught ReferenceError

5. @Aariba: Мой код помогает вам видеть, что выполняется, вот и все. Просмотрите вывод консоли, и вы увидите оригинальный исходный код.