2015-04-05 15 views
2

源地圖可以幫助反混淆先前用Closure/Uglifyjs縮小的代碼嗎?用源地圖對縮小的JS進行反混淆

源地圖的工作方式是否存在真正的障礙,還是僅僅因爲沒有人關心源地圖?我不太確定它是否能夠以類似的方式在編譯語言中調試符號(它廣泛用於反編譯二進制文件)。

我很感興趣從開發人員的角度回答。很高興知道未經授權的訪問源地圖是否可能導致無阻礙的代碼借用。

+1

答案是「是」。 – GolezTrol 2015-04-05 23:17:07

回答

9

JavaScript源地圖與編譯語言中的調試符號非常相似。事實上,兩個Source Map Revision 3 Proposal的三個既定目標是:

  • 支持源碼級調試允許雙向映射
  • 支持服務器端的堆棧跟蹤反混淆

因此,未經授權的訪問來源地圖肯定會導致反混淆。

有一個名爲maximize的節點包,可以使用源地圖對縮小的JavaScript進行反混淆處理。

請注意,當前版本的最大化(0.0.1)不適用於falafel 1.0.0+。您將需要克隆maximize git repo並進行以下修改:

 
--- a/package.json 
+++ b/package.json 
@@ -18,7 +18,7 @@ 
    }, 
    "dependencies": { 
    "argparse": "*", 
- "falafel": "*", 
+ "falafel": "0.3.1", 
    "js-beautify": "*", 
    "seq": "*", 
    "source-map": "*" 

這將讓你嘗試的例子最大化:
http://dev.fontdragr.com/scripts/scripts.js

參見:Can I re-construct the original JavaScript source file from a minified version and the corresponding source-map file?

+0

這正是我所期待的,我會用我的項目來測試它,謝謝。 – estus 2015-05-30 20:10:48