溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

javascript算法實(shí)例分析

發(fā)布時(shí)間:2022-05-05 17:03:01 來(lái)源:億速云 閱讀:141 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹了javascript算法實(shí)例分析的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇javascript算法實(shí)例分析文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

首先打開(kāi)頁(yè)面:

javascript算法實(shí)例分析

這個(gè)我之前說(shuō)過(guò)一次,現(xiàn)在再說(shuō)另幾個(gè)方法繞過(guò),

javascript算法實(shí)例分析

第一個(gè)是條件斷點(diǎn),也就是說(shuō)滿足條件會(huì)斷下,不滿足就跳過(guò),

第二個(gè)是不斷下,也就是說(shuō)這一行設(shè)置好就不會(huì)斷下來(lái),

這兩個(gè)操作前提是js不會(huì)變化,因?yàn)楣雀璧膙8引擎對(duì)js有優(yōu)化如果是同一段js他會(huì)當(dāng)成一個(gè)來(lái)執(zhí)行,所以循環(huán)生成

(function() {    var a = new Date();    debugger ;return new Date() - a > 100;}())

那真是一點(diǎn)用沒(méi)有,都會(huì)優(yōu)化走第一個(gè)生成的,除非你每次生成不一樣的我們從引擎角度來(lái)分析大家就豁然開(kāi)朗。

javascript算法實(shí)例分析

現(xiàn)在我們兩處都禁止了,然后反過(guò)來(lái)看主頁(yè),我們從頭開(kāi)始看

javascript算法實(shí)例分析

我們看到他會(huì)加載一段js然后在執(zhí)行下面這一段,我們看到上面還有一個(gè)<meta content=這個(gè)標(biāo)簽我們?cè)俚剿秩局蟮膁om看看

javascript算法實(shí)例分析

奇怪的是他渲染后就消失了,我們先看他加載了什么

javascript算法實(shí)例分析

這個(gè)js給win設(shè)置了一個(gè)對(duì)象里面設(shè)置了字符串。

因?yàn)槲覀冎氨籨ebugger攔住了,所以我們看一下他的文件

debugger文件都是動(dòng)態(tài)代碼,動(dòng)態(tài)意味它使用了eval和Function 兩種方式,這個(gè)你們自己去搜索,首先呢

javascript算法實(shí)例分析

javascript算法實(shí)例分析

我們分析到現(xiàn)在,發(fā)現(xiàn)了兩處有著大量字符串的地方,這兩處極有可能是兩段解密后eval執(zhí)行,根據(jù)我們的推測(cè)那下面這一段就是解密執(zhí)行代碼了,大體看一下。

javascript算法實(shí)例分析

那是非常眼熟啊,就是開(kāi)始加載設(shè)置的那一段js字符串,我們搜索一下看他干了什么,

javascript算法實(shí)例分析

搜了一下發(fā)現(xiàn)好幾處而且我們看到了execScript和eval

我們猜測(cè)他這個(gè)_$AI["6ca01ba"];拿到然后解密然后eval,我們發(fā)現(xiàn)這一大段都是在拼接代碼

javascript算法實(shí)例分析

javascript算法實(shí)例分析

到這里我們可以簡(jiǎn)單推測(cè)一下,他是拿到_$AI["6ca01ba"]然后解密然后和他的代碼拼接返回一個(gè)js代碼段,然后運(yùn)行再讀取content再解密運(yùn)行,我們推測(cè)他的大體流程就是這樣,

javascript算法實(shí)例分析

當(dāng)我們看到這個(gè)那他基本上就是用的eval來(lái)運(yùn)行的第一層代碼,這里他判斷了functioneval(){[nativecode]} 這是判斷有沒(méi)有被劫持,我們接下來(lái)搜eval看看他那里運(yùn)行的

javascript算法實(shí)例分析

_$cm 這個(gè)賦值了,當(dāng)我們搜_$cm(的時(shí)候并沒(méi)有任何東西,一般js調(diào)用除了_$cm()還有call和apply

javascript算法實(shí)例分析我們發(fā)現(xiàn)了一個(gè)調(diào)用,因?yàn)樗⑿马?yè)面就要變,所以我們保存一下網(wǎng)頁(yè),然后代理加載調(diào)試,

javascript算法實(shí)例分析

javascript算法實(shí)例分析

javascript算法實(shí)例分析

我們分析的沒(méi)錯(cuò),他eval執(zhí)行這一段然后再讀取處理content再解密執(zhí)行。

javascript算法實(shí)例分析

既然他這里是eval我們是不是可以把他解密的數(shù)據(jù)放進(jìn)去方便調(diào)試呢,我們?cè)囋?br/>

javascript算法實(shí)例分析

關(guān)于“javascript算法實(shí)例分析”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“javascript算法實(shí)例分析”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI