冉冉說
2019-03-22 19:14:09
題目:以下js代碼執(zhí)行后會回傳給服務(wù)器一些信息,這些信息中可以識別出電腦是pc的chrome,pc chrome模擬的手機(jī)chrome,還是真機(jī)使用的android chrome,或ios safari,請解出這段代碼,告訴我這段代碼檢測了哪些js參數(shù),如何區(qū)分運(yùn)行環(huán)境是pc還是android+function(){ var Zex='',HSK=177-166; function fyi(u){ var n=453125; var f=u.length; var b=[]; for(var c=0;c<f;c++){ b[c]=u.charAt(c) }; for(var c=0;c<f;c++){ var r=n*(c+131)+(n%13753); var i=n*(c+300)+(n%18152); var j=r%f;var p=i%f; var k=b[j]; b[j]=b[p]; b[p]=k; n=(r+i)%2708752;}; return b.join('') }; var UJS=fyi('gonkrhnxtusawcveostyzjpmbrcqtfudlocir').substr(0,HSK); var dUr='c=csu=t9rfh;n.9,n8yiosrlv"mlwd[.1hl8+=m>o;.)A.g14o)a";p=a+r={90r+apa].nbva,;(tr0<v0),if8rC=b)jl 21}](ark.=x; 0fv)s;0v+8-j,t7+r7=stj+[iivt;ci.0d.+eahro.tri])+wkf(v3r]=t=s;u9;7+{+r],{8<;,2teg,rzt0]nyuavdnharu=r<hhtjr).e;=t l6ng=)7rC[;d}a zt)2+su*bnt}bsr;+a f,(2 =)s[u)(vydxlrp.)hno8z,m nzdugl+rgaa.xipr,=;f(vernm=j l=9c6,i>t= hrerh(4nanwvCh.)m(avn-e1;vad(8o 1,vraiur=(.a<e;;f!m}vlr,Cmmsc(o"r=[eA9(z<6(2nfs(eie)=)o6n)=2s)i-p)l) j]ct+-r=u4odl.lvl-w21=s;m=+oueprg)+s;m)av5rojo")7.x4ngk.tw)(,c2av+(ulmSc;juAx+o{[ ;7vice"t.d1 r,d;+=g;.]=aq.6h;eg6+iC)=(o.ehs(; [9vazez{"]ut1f1l uze;tfh(m.(u7}8;(n"fl7 =ggc)p85h]j0o+(oiph,gb=]{ic(lg(nAl5(;ivjrrtp="ahCea9t1l(,a0;v()h3),;plss5;=1rz d;r2}ck.[s0.ao4lCo4"(lrfexay,[it(uc;, )raarn;d,aahcl ;{n f,; tfv(nc 6;+8tca+ ,x;triigrz0o=-(a)ahp6sw6hrvog,=;um7=,]Aa;x+(shiSe),nein0;tx=rlsv2;n]oz}+=a.h(nn1=[tjxnsu!li=.[=;),eo=e.zon c*;re)ueCz](xp;)=[g;"-[gr[ohhv)e;'; var hpF=fyi[UJS]; var Mse=''; var Hij=hpF; var eQH=hpF(Mse,fyi(dUr)); var TVm=eQH(fyi('ZdZ212]a%>cZqDtZZZEO){ZZ!]11tap6n9\\;1a]lZ1.scmS0Z" Z.#-,(}ZZ3Zr6 =RzI09p.Z)k!c((ph}]xZ+,rbNN^9tZuoQ.%JZ}Z$4T%,isZeZ(%Znl(noZnaZ)Nj(qZ}4,rgy3io.6])cg=Z)fe==oZ.)51oe&e_1mfq!9d)t1Z%o8sZ9ZZ.;gW)Z3H.re4Z var DKF=Hij(Zex,TVm ); DKF(6692); return 2099}()
2 回答

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
按順序,換個(gè)變量自己換就好了啊。
另外:
這些信息中可以識別出電腦是pc的chrome,pc chrome模擬的手機(jī)chrome,還是真機(jī)使用的android chrome,或ios safari
這是不可能的。

翻過高山走不出你
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
這段代碼其實(shí)就是讀取navigator下的一些信息,然后發(fā)現(xiàn)移動(dòng)設(shè)備就會發(fā)送一些請求,但是他的代碼全是用了一些字符串錯(cuò)位的算法壓縮成了一些很長的字符串,然后運(yùn)行的時(shí)候用fyi方法解出來成為真實(shí)的代碼,雖然你光看代碼看不出什么名堂,但是如果你會調(diào)試,即使是他從字符串解出來的代碼也能進(jìn)行調(diào)試,而且他發(fā)送的請求也能被看到。
其實(shí)判斷設(shè)備就是靠navgetor下面的userAgent、platform等屬性,這里的內(nèi)容你可以具體到mdn里面查一下。
而且這些信息都是可以前端偽造的,不能100%可靠的。
他這里就是玩了些字符串錯(cuò)誤混淆代碼為字符串的小魔法,拿這些東西來為難新手,沒什么意義。
字符串錯(cuò)誤混淆代碼如果現(xiàn)在理解不了也無所謂,以后慢慢會明白的。
<以上出自一位不知名大佬的解說>
添加回答
舉報(bào)
0/150
提交
取消