JavaScript逆向調(diào)試技巧總結(jié)分享
前言
前段時間嘗試對某音的 PC 端進行了逆向,目前已經(jīng)全部逆向出來了,在這里總結(jié)下一些調(diào)試技巧和總結(jié)。
本文不會涉及任何的詳細代碼,僅僅是作為技術(shù)來討論。
一、加密分析
在這里以賬戶下的視頻列表為例,可以看到,在 dy 中,加密的 JS 是 webmssdk.js
,其中最主要的加密參數(shù)有以下兩個
在 Postman 中進行測試,發(fā)現(xiàn)這兩個參數(shù)缺一不可,所以逆向過程就是對這兩個參數(shù)進行分析。
_signature 是由兩部分組成,一部分是由 X-Bogus 生成,記為 a。一部分則是根據(jù)后端的一個接口動態(tài)下發(fā)數(shù)據(jù),進行加密拼接在 a 后面,然后再根據(jù)(a + b) 一起生成一個 c,再截取拼接在(a + b)之后。
所以 _signature = a + b + 截取后的 c
整體上逆向難度比較大,如果感興趣的可以嘗試去分析下,本文就不詳細說了。
二、調(diào)試技巧
1、日志分析
在 chrome 中,如果有一段代碼比較難以分析,可以通過插樁分析,具體就是打「日志」
一般情況下,通過日志的分析,可以看到代碼的運行情況,然后再根據(jù)代碼的運行日志,找出可疑點,進行「條件斷點」,一步一步調(diào)試基本上就可以找出其中的算法。
其中可以通過 v_jstoools 進行「僅變量壓縮」,然后得到一份比較容易看的源代碼。
2、常見算法
2.1)MD5
其中如果遇到一些 32 位長度的字符串,那么很可能是 MD5 加密算法得到的,因此對這一類的數(shù)據(jù)必須要重視起來,其中可以多嘗試,還有一種可能會「加鹽」處理,所以遇到 32 或者 16 位字符串,可以多次驗證。
2.2)Base64
如果一個數(shù)據(jù)是由 Base64 編碼得到的,那么在代碼中一定會出現(xiàn)的一個字符串是 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",如果出現(xiàn)了這個字符串,就很可能是 Base64 編碼處理了
2.3)進制處理
常見的進制處理是 16 轉(zhuǎn) 10 進制,或者是 10 轉(zhuǎn) 16 進制,對這一部分數(shù)據(jù)一定要敏感。如果發(fā)現(xiàn)有一些可疑的數(shù)據(jù)轉(zhuǎn)換,可以嘗試看看是不是做了進制處理
三、Chrome 調(diào)試技巧
善用堆棧分析,有很多的邏輯處理,都是可以通過堆棧進行逆推出來的,如果遇到不知道的邏輯,嘗試看下堆棧會有一定的幫助。
XHR 的提取斷點也可以多嘗試下,可以直接定位到參數(shù)生成的地方,非常的方便
總結(jié)
到此這篇關(guān)于JavaScript逆向調(diào)試技巧的文章就介紹到這了,更多相關(guān)JS逆向調(diào)試技巧內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序錄音實現(xiàn)功能并上傳(使用node解析接收)
在我們的日常開發(fā)中經(jīng)常會遇到錄音功能,并上傳到服務(wù)器,今天小編給大家分享微信小程序錄音功能實現(xiàn)并上傳錄音文件,使用node解析接收,需要的朋友可以參考下2020-02-02JS幻燈片可循環(huán)播放可平滑旋轉(zhuǎn)帶滾動導(dǎo)航(自寫)
本文為大家介紹下實現(xiàn)JS幻燈片可循環(huán)播放帶滾動導(dǎo)航可平滑旋轉(zhuǎn)的全過程,效果還不錯,由需要的朋友可以參考下,希望對大家有所幫助2013-08-08JavaScript判斷是否為數(shù)字的幾種方式匯總(推薦!)
有時候需要根據(jù)輸入的內(nèi)容來進行計算,這個時候就需要判斷輸入的內(nèi)容是否是數(shù)字,下面這篇文章主要給大家介紹了關(guān)于JavaScript判斷是否為數(shù)字的幾種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-06-06JS連接SQL數(shù)據(jù)庫與ACCESS數(shù)據(jù)庫的方法實例
這篇文章主要介紹了JS連接SQL數(shù)據(jù)庫與ACCESS數(shù)據(jù)庫的方法實例,有需要的朋友可以參考一下2013-11-11js以分隔符分隔數(shù)組中的元素并轉(zhuǎn)換為字符串的方法
下面小編就為大家?guī)硪黄猨s以分隔符分隔數(shù)組中的元素并轉(zhuǎn)換為字符串的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11JS回調(diào)函數(shù) callback的理解與使用案例分析
這篇文章主要介紹了JS回調(diào)函數(shù) callback的理解與使用,結(jié)合具體案例形式分析了javascript回調(diào)函數(shù)的功能、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-09-09JavaScript 動態(tài)三角函數(shù)實例詳解
本文通過實例代碼給大家實例講解了javascript動態(tài)三角函數(shù)知識,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-01-01