Deobfuscating Angel Drainer JS Kit | Shahar Madar (Fireblocks)
三句話摘要
Fireblocks 安全團隊公開逆向工程「資產清空器」(Asset Drainer)惡意 JavaScript 的完整去混淆方法論。 對惡意 JS 進行去混淆的核心不在工具本身,而在「靜態 + 動態」雙軌策略:用 Babel AST 解構間接引用,用沙盒執行破解字串映射,缺一不可。 混淆是惡意軟體的核心防禦手段:惡意程式開發者透過混淆來延緩研究人員逆向進度、規避偵測系統,並維持大規模抽取錢包資金的能力;破解混淆等同於釜底抽薪。
重點整理
重點- 1
混淆是惡意軟體的核心防禦手段:惡意程式開發者透過混淆來延緩研究人員逆向進度、規避偵測系統,並維持大規模抽取錢包資金的能力;破解混淆等同於釜底抽薪。
- 2
靜態分析不夠,必須能動態執行:研究團隊設定三個目標:程式碼可讀、可執行調試、最大化使用開源工具。純靜態分析無法解決字串映射問題,因此他們在沙盒中直接運行解包函式來取得真實字串。
- 3
三層混淆結構各有專屬破解策略:E(間接引用)用 Babel AST 替換為直接字串;D(字串映射表)用沙盒動態執行取得真實值;W(反調試層)用 WebCrack 移除,最終解鎖調試器存取能力。
- 4
逆向工程的最大價值在於發現「意外的簡單」:經數週工作後,团队發現某個讓研究人員大費周章的函式,其實只是關閉一個彈窗——這恰恰說明完整去混淆能揭露攻擊者真實意圖,避免對假複雜度浪費資源。
實用技巧與重點
乾貨- 受害者規模:數十萬人,損失超過 2000 萬美元
- 資產清空器近期與競爭對手合併,能力進一步增強
- 原始惡意程式碼:壓縮後單行 ~50 萬字元
- 壓縮格式:XZ 壓縮 + Base64 編碼
- 解包後程式碼量:28,000 行
- JS 保護層:obator.io(常見商業混淆工具)
- 工具鏈(按處理順序):
- Unminify — 移除 JS 壓縮(Minification)
- WebCrack — 破解 obator.io 保護,維持可調試性
- Babel AST — 將間接引用(E 層)替換為直接字串(智慧型 Find & Replace)
- 沙盒動態執行 — 解析字串映射表(D 層)
- 三個混淆層代號:E(間接引用)、D(字串映射)、W(反調試)
- 最新版本:Angel X(Angel Drainer 的升級版)
- 鏈上 C2 機制:利用 Smart Contract Storage 進行指令控制
- 延伸研究起點:Blockhead Research 部落格
結論
結論“對惡意 JS 進行去混淆的核心不在工具本身,而在「靜態 + 動態」雙軌策略:用 Babel AST 解構間接引用,用沙盒執行破解字串映射,缺一不可。”
完整解析
詳細資產清空器(Asset Drainer)是 Web3 領域最惡名昭彰的惡意工具包之一,已累計造成數十萬名受害者超過 2000 萬美元的損失。它近期更與同類競爭工具合併,使其能力大幅躍升。Fireblocks 產品安全團隊負責人 Shahar 與團隊成員 Matan 決定正面迎戰:真正去理解它的程式碼——但第一道牆就是嚴密的混淆保護。
混淆(Obfuscation)的存在並非意外。從惡意軟體開發者的視角,混淆能有效延緩逆向工程速度、增強惡意軟體韌性、逃避偵測系統,並讓大規模抽取加密錢包的行為更難被中斷。研究團隊因此設下三個明確目標:一、讓程式碼可讀(移除所有混淆層);二、讓程式碼可執行並能調試(不只做靜態分析);三、最大化使用開源工具,不重複造輪子。
技術處理流程分為多個階段。第一層:惡意 JS 載入器是壓縮後的單行程式碼,約 50 萬字元,用 XZ 壓縮並以 Base64 編碼。研究員用 Unminify 解壓縮後,逆向操作——先 Base64 解碼、再 XZ 解壓——取得較可讀的 JavaScript。第二層:解包後的程式碼受 obator.io 保護,這是常見的商業級 JS 混淆工具。研究員比較了數個開源工具後,選擇 WebCrack,原因是它在去混淆的同時仍保持程式碼的可調試性。解包後得到約 28,000 行程式碼,但仍存在三個關鍵混淆層。
針對三個混淆層,研究團隊各施策略:「E 層」是大量間接引用,研究員使用 Babel 將程式碼解析為抽象語法樹(AST),再以智慧型替換將所有間接引用轉為直接字串,類似結構感知的 Find & Replace。「D 層」是字串映射表,靜態分析無從下手,因此研究員將該函式抽出,在沙盒環境中直接執行,用實際執行結果消除字串間接性。「W 層」是反調試保護,最後一輪 WebCrack 將其全數移除,使調試器終於能正常掛接。
經過數週工作,團隊成功拿到可讀且可執行的完整原始碼。最具諷刺意味的收穫是:某個讓研究人員大費周章的函式,拆開後發現它只是「關閉一個彈窗」。這個結果恰好證明了完整去混淆的核心價值——你必須真正讀懂程式碼,才能分辨哪些是真正的攻擊邏輯、哪些只是迷霧。目前 Angel X(資產清空器的最新版本)已成為下一個研究標的,其中特別值得關注的是它以 Smart Contract Storage 實現的鏈上指令控制(On-Chain C2)機制,研究起點可參考 Blockhead Research 部落格。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

