国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原

這篇具有很好參考價值的文章主要介紹了jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

什么是jsvmp

jsvmp就是將js源代碼首先編譯為自定義的字節(jié)碼,只有對應(yīng)的解釋器才能執(zhí)行這種字節(jié)碼,這是一種前端代碼虛擬化保護技術(shù)。

整體架構(gòu)流程是服務(wù)器端通過對JavaScript代碼詞法分析 -> 語法分析 -> 語法樹->生成AST->生成私有指令->生成對應(yīng)私有解釋器,將私有指令加密與私有解釋器發(fā)送給瀏覽器,就開始一邊解釋,一邊執(zhí)行。

這些都不重要,只要知道有這么個技術(shù)就行了。jsvmp有一個特性,加密結(jié)果是一個一個字符生成的,要想一個個生成肯定需要循環(huán),那無非就是for循環(huán)或者while循環(huán)以及switch case。這一點至關(guān)重要,算法的分析還原就依賴這個特性。

定位關(guān)鍵點

全局搜索關(guān)鍵字“X-s”,定位到main.***.js,這個js文件中會有多處生成x-s的地方,全部打上斷點,最終會定位到 c = (a || void 0 !== window._webmsxyw ? window._webmsxyw : sign)(u, i) || {};,只有這行代碼被調(diào)用并且生成了x-s,其它的幾處都是原來的老版本已經(jīng)廢棄了。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原

log插樁

在斷點處單步調(diào)試就會進入到j(luò)svmp,把這個js文件保存到本地并用v_jstools進行ast混淆解密,選擇僅變量壓縮,壓縮變量后替換原來的代碼。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原

jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
還記得我前面說過的jsvmp的特性嗎?如果你還記得那將會為你節(jié)省大量時間,這個時候如果去盲目的動態(tài)調(diào)試你就會進入一個迷宮永遠走不出來,正確做法就是直接在js文件中尋找循環(huán)的位置。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
144行到164行有兩個while循環(huán),在這兩個循環(huán)里面添加日志點,144-150這個while循環(huán)會無限執(zhí)行,32g內(nèi)存都能撐爆,暫時不管這個循環(huán),在161行位置插入日志"h:",JSON.stringify(h[0]),"C:",C,"H:",H,運行結(jié)果如下圖。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
分析日志可知,當(dāng)C==781的時候x-s已經(jīng)生成,但具體生成步驟日志里并沒有,那就在160行插入條件斷點C==780&&H[0]==31&&H[1]==3&&H[2]==83&&H[3]==1&&H[4]==0,并且把所有進行過運算的方法里都插入日志點,比如185行"%","左:",r(A, B),"右:",r(E, Q),203行"|","左:",r(A, B),"右:",r(E, Q)等,142行特別重要"h3:",JSON.stringify(h[0]),"A:",A,"B:",B,這個日志點一定要打上。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原日志點打好之后先停用斷點,只保留160行的條件斷點,然后繼續(xù)執(zhí)行,再次斷在160行。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
清空控制臺日志信息,啟用所有斷點(263行的斷點停用,這個方法就是拼接字符串),繼續(xù)執(zhí)行代碼,執(zhí)行完畢后將日志保存到本地。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原

日志分析

notepad打開日志,拉到最底下,復(fù)制X-s前面一小部分,全局搜索,全詞匹配,然后全部標(biāo)記。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
仔細觀察下圖中標(biāo)紅的位置,會發(fā)現(xiàn)明顯規(guī)律,“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=”是固定的,這個時候就可以大膽猜測了,它可能是調(diào)用了字符串的charAt方法,傳入?yún)?shù)就是下方的數(shù)字,返回一個字符,然后依次將字符拼接。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
控制臺驗證一下,果然如此。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
接下來就得找出13、19、0、34這四個數(shù)字怎么來的,往上翻看日志,找到了可疑之處,這里出現(xiàn)了一些位移計算,也生成了上一步需要的數(shù)字。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
控制臺驗證一下,經(jīng)過反復(fù)驗證得知,13 = 53 >> 2,19 =((53&3)<<4)|(48>>4),0 = ((48&15)<<2)|(34>>6),34 = 34&63,而且加粗的數(shù)字是固定的,那么下一步就是要確定53,48,34的生成邏輯。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
接著往上翻看日志,又找到可疑之處,一個json字符串"{\"signSvn\":\"50\",\"signType\":\"x1\",\"appId\":\"xhs-pc-web\",\"signVersion\":\"1\",\"payload\":\"5c401130ca247f32ba75cbf05e0e58476fd112ed52f233f67fce4c61c5bc93dfc25b0c6065eda2f639a922d4481a611116e2e3bfb89e2da1dad61c5041d6ac2bdad61c5041d6ac2bba1c4fcc5520a3e3f9f6b953ff819f7c4d3964d610405efa8a7e6e067da7404c0381f161cf3a5952aefd4645c665dc827a83a6069b97009fd07c9b6d6913acbc9074093d7367e83ad4cdc39c2b950152b2ef9cd5fbe10084ffcb49de03a9400d0a36d7b01017de7dfffbe9b83b736a194ddc12db02f7193f\"}"
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原
數(shù)字12、13、14有規(guī)律的增長,也生成了上一步需要的數(shù)字53,48,34,還有三字符’5’、‘0’,‘"’,這三個字符像是從json字符串里面取出來的,12、13、14分別是索引,然后調(diào)用’5’.charCodeAt(),‘0’.charCodeAt(),‘"’.charCodeAt()??刂婆_驗證一下猜想,果然如此。
jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原

代碼還原

經(jīng)過上面幾個步驟分析,大致生成邏輯已經(jīng)捋清楚,除了json字符串里面的payload還沒還原外,其它的步驟都已還原,并對比了瀏覽器和代碼生成的結(jié)果,是一致的,完整代碼如下,下一篇文章將分析payload的還原過程。文章來源地址http://www.zghlxwxcb.cn/news/detail-460504.html


var str1 = "{\"signSvn\":\"50\",\"signType\":\"x1\",\"appId\":\"xhs-pc-web\",\"signVersion\":\"1\",\"payload\":\"16e0c0c108d9481f25fa55e5d0b68ca2a3754a5a6fd39af8945de60083f572f85fbf196a7df36325df512bc23f13ef9616e2e3bfb89e2da1dad61c5041d6ac2bdad61c5041d6ac2bba1c4fcc5520a3e3f9f6b953ff819f7c4d3964d610405efa8a7e6e067da7404c0381f161cf3a5952aefd4645c665dc827a83a6069b97009fd07c9b6d6913acbc9074093d7367e83ad4cdc39c2b950152b2ef9cd5fbe10084ffcb49de03a9400d0a36d7b01017de7daaeec9560d5a42f0e8cf56bde5e4d9b8\"}";
var str2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var data = "XYW_";
var arr1 = []
for (var i = 0; i < str1.length; i++){
    var code = str1[i].charCodeAt();
    arr1.push(code)
}
var arr3 = [];
for(var i = 0; i< arr1.length; i += 3){
    arr3.push(arr1.slice(i, i + 3));
}

for (var i = 0; i < arr3.length; i++){
    var arr = arr3[i];
    var arg1 = move_r(arr[0],2);
    var arg2 = move_l(arr[0]&3,4) | move_r(arr[1],4);
    var arg3 = move_l(arr[1]&15,2) | move_r(arr[2],6)
    get_data([arg1,arg2,arg3,arr[2]&63])

}

function move_r(l,r){
    return l >> r;
}

function move_l(l,r){
    return l << r;
}

function get_data(arr){
    for (var i = 0; i < arr.length; i++){
        var code = arr[i];
        var result = str2.charAt(code);
        data += result;
    }
}
console.log(data)

到了這里,關(guān)于jsvmp逆向?qū)崙?zhàn)x-s、x-t算法還原的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 最新PDD商家端Anti-Content參數(shù)逆向分析與純算法還原

    最新PDD商家端Anti-Content參數(shù)逆向分析與純算法還原

    【??作者主頁】: 吳秋霖 【??作者介紹】:擅長爬蟲與JS加密逆向分析!Python領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、CSDN博客專家、阿里云博客專家、華為云享專家。一路走來長期堅守并致力于Python與爬蟲領(lǐng)域研究與開發(fā)工作! 【??作者推薦】:對爬蟲領(lǐng)域以及JS逆向分析感興趣的朋友可以關(guān)

    2024年04月09日
    瀏覽(25)
  • 《算法還原 - CTF》逆向exe程序 + ida Pro 反匯編分析偽C代碼 + python算法復(fù)現(xiàn)

    《算法還原 - CTF》逆向exe程序 + ida Pro 反匯編分析偽C代碼 + python算法復(fù)現(xiàn)

    二進制安全,能干什么 逆向分析: 負責(zé)成品軟件的技術(shù)原理. 比如分析競品軟件,吸取技術(shù)上的優(yōu)點,進行技術(shù)難點公關(guān) 病毒分析: 負責(zé)分析病毒樣本.研究惡意代碼的技術(shù)手段等工作.主要是在安全公司,尤其是在殺毒軟件公司需求較多.如360 、騰訊電腦管家等. 漏洞挖掘分析: 負責(zé)

    2024年01月22日
    瀏覽(56)
  • 【Python爬蟲項目實戰(zhàn)二】Chatgpt還原驗證算法-解密某寶偽知網(wǎng)數(shù)據(jù)接口

    【Python爬蟲項目實戰(zhàn)二】Chatgpt還原驗證算法-解密某寶偽知網(wǎng)數(shù)據(jù)接口

    最近在寫論文,導(dǎo)師那里很嚴格,所以我打算去知網(wǎng)下載文章進行參考,但是需要money,在同學(xué)的推薦下拿到了某寶一家免費的知網(wǎng)接口,今天就是對該網(wǎng)站的分析,最后成品會開源!在分析的時候被對方耍了一下,對方有一個登陸頁面,登陸了后才發(fā)現(xiàn)只是個導(dǎo)航,其實登

    2023年04月22日
    瀏覽(39)
  • 【爬蟲逆向分析實戰(zhàn)】某筆登錄算法分析——本地替換分析法

    【爬蟲逆向分析實戰(zhàn)】某筆登錄算法分析——本地替換分析法

    作者最近在做一個 收集粉幣 的項目,可以用來干嘛這里就不展開了??,需要進行登錄換算token從而達到監(jiān)控收集的作用,手機抓包發(fā)現(xiàn)他是通過APP進行計算之后再請求接口的,通過官網(wǎng)分析可能要比 APP逆向方便多 ,但是通過這幾天的觀察我并沒有頭緒,這篇文章草稿創(chuàng)建了

    2024年02月05日
    瀏覽(34)
  • 逆向-還原代碼之duowei_array (Arm 64)

    逆向-還原代碼之duowei_array (Arm 64)

    ? ? ? // source code #include stdio.h #define ROWS?? ?3 #define COLS?? ?4 void sum_rows(int ar[][COLS], int rows); void sum_cols(int [][COLS], int); int sum2d(int (*ar)[COLS], int rows); int main(void) { ?? ?int junk[ROWS][COLS] = { ?? ??? ?{2, 4, 6, 8}, ?? ??? ?{3, 5, 7, 9}, ?? ??? ?{12, 10, 8, 6} ?? ?}; ?? ?sum_rows(junk

    2023年04月10日
    瀏覽(21)
  • 66.網(wǎng)游逆向分析與插件開發(fā)-角色數(shù)據(jù)的獲取-角色類的數(shù)據(jù)分析與C++還原

    66.網(wǎng)游逆向分析與插件開發(fā)-角色數(shù)據(jù)的獲取-角色類的數(shù)據(jù)分析與C++還原

    內(nèi)容來源于: 易道云信息技術(shù)研究院VIP課 上一個內(nèi)容:65.網(wǎng)游逆向分析與插件開發(fā)-角色數(shù)據(jù)的獲取-項目需求與需求拆解-CSDN博客 ReClass.NET工具下載,它下方鏈接里的 逆向工具.zip 里的reclass目錄下:注意它分x64、x32版本,啟動是用管理員權(quán)限啟動否則附加時有些進程附加不上

    2024年02月03日
    瀏覽(27)
  • DX算法還原

    DX算法還原

    早在之前作者就寫過一篇關(guān)于頂象的滑塊驗證,潦潦草草幾句話就帶過了。 出于互相學(xué)習(xí)的想法,給了一個大學(xué)生,奈何不講武德把源碼甩群里了,雖然在大佬們眼里不難, 不過拿著別人的東西亂傳還是不太好。自認倒霉,大表哥們互相學(xué)習(xí)學(xué)習(xí)。文末作者留下還原的案 例

    2024年02月06日
    瀏覽(23)
  • 利用Velero對K8S備份還原與集群遷移實戰(zhàn)

    利用Velero對K8S備份還原與集群遷移實戰(zhàn)

    Velero 是一款云原生時代的災(zāi)難恢復(fù)和遷移工具,采用 Go 語言編寫,并在 github 上進行了開源,利用 velero 用戶可以安全的備份、恢復(fù)和遷移 Kubernetes 集群資源和持久卷。 開源地址:https://github.com/vmware-tanzu/velero 官方文檔:https://velero.io/docs/v1.11/ 1.1 支持的版本列表 1.2 Velero組件

    2023年04月23日
    瀏覽(20)
  • x-s和web_session

    x-s和web_session

    開工發(fā)現(xiàn)web更新了,目前筆記信息接口: /api/sns/web/v1/feed 請求時headers中需要x-s、x-t,cookie中需要有web_session。 web_session和當(dāng)前環(huán)境綁定,重新注冊后瀏覽器中的ID也會更新。 其主要依賴的參數(shù)是webId,類似于設(shè)備指紋。根據(jù)測試得出,webId只需要隨機生成32位字符即可。 然后

    2024年02月03日
    瀏覽(17)
  • 瑞數(shù)6代vmp算法還原流程筆記

    瑞數(shù)6代vmp算法還原流程筆記

    **本文主要提供思路和流程,不提供代碼** ? ? ? ? 1.debugger解決 ? ? ? ? 第一個debugger通過右鍵一律不在此暫停解決 ? ? ? ? 第二個通過在控制臺輸入以下hook eval的代碼便可解決 ? ? ? ? 2.如何調(diào)試 ? ? ? ? ? 1.將控制臺的日志錯誤輸出關(guān)閉,不然一直輸出報錯的日志 ? ?

    2024年02月03日
    瀏覽(41)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包