js 逆向分析的神器 --- v_jstools
From:https://mp.weixin.qq.com/s/LisYhDKK_6ddF-19m1gvzg
1、下載和安裝插件
這是一款瀏覽器插件,功能非常的nice
工具地址:https://github.com/cilame/v_jstools
瀏覽器打開上面的網站后,點擊 code 按鈕,選擇 Download?ZIP 選項,將文件下載下來,然后解壓,會看到一個??v_jstools-main? 的文件夾。
谷歌瀏覽器地址欄輸入:chrome://extensions/? 打開擴展程序頁面,并打開開發者模式。如果是其他瀏覽器,請使用菜單欄打開。
打開后,點擊左上角的?加載已解壓的擴展程序?按鈕,然后選擇?v_jstools-main? 文件夾,如圖:
在選擇文件夾后,插件就已經加載進來了。
2、插件功能
在擴展程序中,打開該插件,看看支持哪些功能:
?
?
?打開配置頁面后,來到這里:
可以看到,有三個功能。?
dom對象hook
第一個功能是?dom對象hook?,它內置了很多常見方法的hook,如eval,cookie,Function等,想hook哪個方法,直接打鉤即可,非常的方便。有了這個,再也不用寫油猴腳本啦。
ast hook替換
第二個功能是?ast hook替換,顧名思義,就是攔截某個js代碼,通過ast處理后,再返回ast處理后的代碼,讓混淆代碼見鬼去吧。
它給的示例代碼是這個:
function fetch_hook(code, url) {var ast = parser.parse(code);function removedebugger(path) {path.replaceWith(t.identifier("/*debugger*/"))}traverse(ast, {DebuggerStatement: removedebugger});var {code} = generator(ast, {jsescOption: {minimal: true,}});return code }這里簡單說一下,?fetch_hook 函數?接受2個參數,可以不用理會,如果你想hook特定的url,可以在函數的首行加入這樣一段代碼:
if (url.indexOf("https://www.xxx.com.cn/xxx.js") == -1) {return code // 檢測到不是這個 url 就直接返回原始代碼 }再就是編寫 ast 插件了,按照這樣下就好:
function removedebugger(path) {path.replaceWith(t.identifier("/*debugger*/")) } traverse(ast, {DebuggerStatement: removedebugger});先寫方法,再遍歷,也可以按照我星球里的方式進行編寫,都是一樣的。
不過在我使用了幾次以后,還是覺得線下處理混淆代碼香,當然要看你的使用場景了。
AST 的解密混淆
第三個功能是一些?AST的解密混淆,如圖:
?把混淆代碼復制到上面的白色框中,點擊對應的按鈕即可解混淆,也是非常的方便。這里能解混淆的有 sojson,ob混淆,jsfuck以及壓縮代碼等,都是比較常用的功能。
試用了一番,可以還原最新版的ob混淆,效果還是很棒的。當然一些修改特征了的代碼無法還原,這個要做到通殺確實有些難度。
總結
以上是生活随笔為你收集整理的js 逆向分析的神器 --- v_jstools的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: npm 详解
- 下一篇: Scrapy-Link Extracto