案例一? ?eval 混淆
特征 : 反常的 eval 連接了一堆數據?
練習網站
https://scrape.center/
spa9 這個案例
基本的還原方法
但是這個代碼還是非常的模糊不好看
優化一下? :
當然還有更快捷的方法 :?
好用的 js混淆還原的 web :
https://jsdec.js.org/https://lelinhtinh.github.io/de4js/
真實的案例 :? ?
https://www.aqistudy.cn/
這個案例之前做過就是 debugger hook失敗的那個? 原因就是 hook無法處理eval 混淆的數據?
這個eval可能比較不同 就是他的這個這個里面還有一個函數? 其實里面這個就是解密數據的 然后 eval 解密回顯到前端
案例二 JJencode :
spa10? ? ? ? ? 特征 : 反常的 $,[]等特殊符號
手lu :
原理就是 函數 如 xiaodi() 這個是混淆的函數? 然后我們去掉 () 函數就失效了源碼顯現
老套路優化一下就出來了
案例三 : AAencode
特征其實就是顏文字 :
判斷之后直接網站解
案例四 : JSfunck
特征 :就幾個元素 [] ! + ()
也是去 括弧解法
或者是 直接在webstrom中進行運行 :
案例五 :ob混淆
obfuscator :特征 就是 無規則的0x 以及 類似于計算機中文符號的 /x
這個只能使用 AST(js的原始算法進行解密)
AST的基本語法
AST explorer
官網 我們寫入一個簡單的js代碼
并且還有就是轉為ast的語法結構 :
VariableDeclaration 代碼聲明的變量
其實這個ast就是前端的對語法單詞的轉換? 每一個塊都是這個樹上的一個樹葉 :
當我們點擊name的時候
ldentifier 翻譯一下就是標識的意思 這個也確實就是標識符的意思
第三個塊就是里面的內容 也是一個塊? 其實 = 這個也是在這個ast樹有自己的結構類型的 (他也是標識符)
Literal? 就是文本內容的意思
為什么ast樹可以很好的分析 這個 ob混淆呢? ?因為混淆的原理就是就是把代碼中我們能看懂的內容變為我們看不懂的內容 就是把內容混淆了 還有一些函數的名字等?
我們使用ast樹操作一下這個ob加密的代碼
使用ob混淆web進行混淆一下
復制到樹那邊
其實就能看著這個類型進行分析的
web直接梭哈 :??
https://obf-io.deobfuscate.io/
https://webcrack.netlify.app/
https://deli-c1ous.github.io/javascript-deobfuscator/
這三個web都是非常好用的
上練習web :
抓包發現前端的數據被混淆 通過特征? 0x? _開頭的函數可以知道是ob :
方法1 直接web梭哈?
方法2 就是使用 ai+ast樹進行分析
使用 deepseek 直接分析?
但是有個就是 ob 混淆的延伸 v代號的混淆? 這個只是國內小作坊的二開
案例 : jsjiami v6?:
https://eisk.cn/Tides/1346.html
這樣的不經意看還以為是ob 但是和 ob差的就是? \x 這類中文字符的加密
復制到
拿到代碼
判斷是aes加密的文件? 先把算法逆了? ? ? ? ??
https://www.mklab.cn/utils/aes
發現主頁類似于這樣的加密數據
是不是直接拿下了 發現這個就是頁面顯示的內容