js逆向JSVMP篇某程算法還原(二)
提示!本文章僅供學習交流,嚴禁用于任何商業(yè)和非法用途,如有侵權(quán),可聯(lián)系本文作者刪除!
前言:
??前面分析過手機端網(wǎng)頁版的sent參數(shù),這一篇是分析的是PC端網(wǎng)頁版的testab參數(shù),其實當你看到這兩個參數(shù)的時候,你會發(fā)現(xiàn)它們特征都是一樣的,如果你還原過sent參數(shù)的算法,大概會想testab參數(shù)就是sent參數(shù)吧,就會拿sent參數(shù)的算法去試一下,然后會發(fā)現(xiàn)用不了,用不了就對了嘛,以為某程鬧著玩呢,就改個名字就是另外一個參數(shù)了?
加密入口定位:
??全局搜索testab,首先有兩個js文件,加密位置在第一個js文件中,點擊即可跳轉(zhuǎn),如下:
這里其實有個坑,上圖中的僅僅是加密參數(shù)生成的位置,如果從這個地方進去調(diào)試vmp,那么到死都拿不到全部的日志信息,因為這里只是將生成的64位數(shù)組轉(zhuǎn)為testab參數(shù)的地方。不過可以通過這里找到加密的位置,在這個地方斷住之后如下:
上圖圈出的位置才是加密參數(shù)真正開始生成的位置,所以這里算是一個小坑了,然后直接點擊圈出的地方跳轉(zhuǎn)過去即可,如下:
這里的window.eval(n)就是入口了,之后就可以從這里進入vm里面開始分析了。從上圖的代碼中也能看出,它是做了時間校驗的,這里注意下就好了, 加密入口找到了,接下來就是開始進去分析代碼了,當然詳細的分析過程當然就不寫了,主要是不想花這個時間,整個算法其實是和sent參數(shù)一樣的,最后有改動的只有如下部分:
上面這部分呢是還原出來的算法的部分,這部分也可以說是整個算法中最重要的部分了,tsteab和sent的算法中也就這個地方不一樣,還記得在還原sent參數(shù)算法那篇文章中,有說到一開始會將b對應(yīng)的這段字符串通過decode函數(shù)轉(zhuǎn)成一個二維數(shù)組,可能大家不一定記得,先來看看初始的傳參,如下:
說的b就是_bot_e9e6c中的,而這里的這一步可理解為是從d中取值,這也就是為啥sent的算法不能直接用于tsteab的原因,主要就是因為這里取的范圍不一樣,然后下面是整個算法的順序(只是我還原的算法順序):
最后看一下:


成功拿到數(shù)據(jù)。
代碼在下方,需要的自取
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

可以,大家都有一顆白嫖的心,不愧是頂尖程序員,代碼肯定不可能直接給的啦。
