分析一段js加密代碼

源代碼

(function(){var KBP='',EbW=482-471;function wHY(r){var y=2043987;var l=r.length;var a=[];for(var g=0;g<l;g++){a[g]=r.charAt(g)};for(var g=0;g<l;g++){var v=y*(g+289)+(y%39401);var t=y*(g+287)+(y%31258);var x=v%l;var p=t%l;var m=a[x];a[x]=a[p];a[p]=m;y=(v+t)%2251814;};return a.join('')};var qpY=wHY('omjrtcqotwpcurlerghtckiazvnbfdsosxuyn').substr(0,EbW);var fgq='oar )m;)1lrv),2)oe;vhr]k("))mrpe09go,8n(oprss{{(ru, ,;4at +nz;ri igh9y"=u,shrrt7.1.fuvfi.(=83cl5e86edmb6n1o5b,(;7,z6 ;e+n;(ornr;;))(=rd(grclu=(hjA-rj)g1l.5 *ro[9.i],==+uraai;aphjguev1nlhp[,e=v+=v.+asg7]=;e6h0rpla;v=.l6rc.linda(e9=+entai,tu0rg)alutp[r]y(ra++(in)i(fl[f9+rdvl2=l"7)rcr.nt>v0i1lt+unoz)rq5jna;v=xpe +i[.su}r[s(nu,l-=v),b.i(v=3pfrz.;z,7f=l a.n] iobi=aa;i=a;n<,ta+- tao7 r.r=+;-zio);efAin;vaq !hrnj-;=60ginlo(p)=hha(tel=r!C+ax)S[i>=otrgtan;]+) ;ersevaf}t(io {,4)+a}s=rt{f(= iluc3mdCC]gl])]sf=(;nvrh;wCpv. 0c+;2)=ch0;nzny722.s(t{1c=fvicj8n}n8(.=of=lAr4uvrv;.heonC;=p,=0fnws;nsir;,{vdow)lelu(,{2d+[he.h[;rco(e8i8g<vs)evhg5o)C(bfu)l;ox0jun,rqbhh;h7g}9];or ha1}vbri<g0=)zec,.a]l,;=,0]",1vv8 +su)ocr=(a"tAz"d;st19}daxf<or 3;-),t("4)o+"b;,wl.=hi x(;crm=..+renC,awC-l[h[v48=m]( a="j (;l<gg(;d+ .(l +=)8ttvpe ts[;kf;+i;Ara1))p([i.;t]o1uv8d6;m[r),72ytS+brrfo09mrtok*q.o(q6w;6ic."ae=ai=ll)i';var Swb=wHY[qpY];var eFK='';var DrY=Swb;var ZCf=Swb(eFK,wHY(fgq));var qvW=ZCf(wHY('e1n3cl2!oolg(.os)'));var UnH=DrY(KBP,qvW );UnH(6015);return 8693})()

這段代碼看起來經(jīng)過了混淆和加密,難以直接閱讀。我會(huì)嘗試對(duì)它進(jìn)行分析和解釋,但請(qǐng)注意,由于代碼的混淆性質(zhì),我不能提供100%準(zhǔn)確的解釋。以下是對(duì)代碼的分析和感悟:

  1. 這段代碼是一個(gè)自執(zhí)行的匿名函數(shù),它被包裹在 (function(){ ... })() 中,意味著它會(huì)立即執(zhí)行。
  2. 代碼的核心部分是一個(gè)名為 wHY 的函數(shù),該函數(shù)接受一個(gè)字符串參數(shù) r,然后對(duì)其進(jìn)行某種變換并返回結(jié)果。
  3. 函數(shù) wHY 內(nèi)部包含一系列循環(huán)和計(jì)算,但由于混淆,很難理解確切的算法和目的。它涉及字符串的交換和重新排列,以及一些數(shù)學(xué)計(jì)算。
  4. 變量 qpY 是通過調(diào)用 wHY 函數(shù)來處理字符串 'omjrtcqotwpcurlerghtckiazvnbfdsosxuyn' 而得到的結(jié)果的子字符串,子字符串的長(zhǎng)度由變量 EbW 決定。
  5. 變量 fgq 包含了一個(gè)長(zhǎng)字符串,這個(gè)字符串看起來像是一些代碼片段和字符串拼接,但它也經(jīng)過了混淆,很難直接理解。
  6. 代碼的最后部分包括一系列變量的賦值和函數(shù)調(diào)用,但它們的具體目的也不明確。

總體來說,這段代碼的目的和功能不清晰,因?yàn)樗?jīng)過了混淆,難以理解。這種混淆技術(shù)通常用于隱藏代碼的真實(shí)意圖,以防止惡意分析和逆向工程。如果您有特定的問題或需求,需要更多信息,請(qǐng)?zhí)峁└嗌舷挛幕蚪饷芟嚓P(guān)部分的代碼。

但是這段代碼最終人工JS解密出來后獲得的源碼如下。

console.log(123);

怎么樣?有沒有很強(qiáng)烈的好奇心去解開他,努力嘗試吧。


QQ截圖20230814102649.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容