前言¶
DeepSeek Harness (DSH) 允許通過插件擴展智能體的能力。在分析前端加密邏輯或處理混淆 JavaScript 時,直接在瀏覽器環境中調試往往受限於環境隔離和依賴缺失。本插件旨在解決這一痛點,提供一套用於靜態還原和動態 Hook 的工具,幫助分析者從混淆代碼中提取純淨邏輯。
核心能力¶
該插件包含三個主要功能模塊:
- 靜態還原:這是核心路徑。將提取出的混淆前端 JS 轉換爲無主機依賴的計算函數,剝離
window/document/navigator/canvas等環境依賴。這使得分析者可以在純 Node 環境中計算簽名、加密請求體或解密響應,無需瀏覽器注入。 - 輔助定位:生成 Hook 腳本,用於捕獲函數的參數、返回值以及調用棧。這對於調試、取證以及定位加密入口點非常有效。
- 驗證:內置多種加密算法的驗證函數,覆蓋 AES/RSA/MD5/SHA/HMAC/循環 XOR/單字節暴力破解/大整數模冪運算,可利用已知密文、密鑰或 IV 重新計算並驗證結果。
安裝與配置¶
環境要求:需要 Node.js >= 24。
安裝命令:
dsh plugin --profile web add github:wangyin572/dsh-plugin-reverse
安裝完成後,該插件會在 DSH 中提供一系列用於分析的工具命令。運行上述命令後,重啓對應的 profile 即可生效。
典型工作流¶
針對不同的代碼情況,按以下步驟操作:
- 評估可行性:在開始分析前,先運行
rev_assess。該命令會分析代碼,判斷靜態還原或 Hook 是否可行,給出阻塞點、入口點候選和環境值要求,並生成執行計劃。 - 輔助定位:如果代碼包含
eval或動態邏輯,使用rev_hook_generate生成 Hook 腳本。保存並運行該腳本後,可以使用__revHook.dump()查看捕獲的記錄,使用__revHook.save()導出 JSON,或使用__revHook.unhook()恢復方法。 - 靜態提取:使用
rev_extract_pure進行靜態還原,生成依賴閉包提取和環境注入後的pure.mjs/env.mjs/demo.mjs模塊。 - 代碼解混淆:使用
rev_deobfuscate對源碼進行語義保留的安全重寫(如轉義恢復、常量摺疊、成員訪問規範化),並檢測混淆特徵。 - 結果驗證:使用
rev_crypto_calc對加密結果進行驗證,覆蓋標準庫和手寫大整數路徑。
適用範圍與注意事項¶
適用範圍:本插件僅適用於授權分析的代碼,包括自有項目、授權安全測試、惡意軟件分析、CTF 和互操作性研究。
安全警告:Hook 腳本會記錄函數參數和返回值,這些數據可能包含憑證。請僅在您被授權分析的環境中運行。不要將此工具指向他人的賬戶或系統。
配置注意:不要混合使用 bundle manifest (dsh.bundle) 和 profile manifest (dsh.profile)。