使用源映射对缩小的JS进行反混淆处理

Est*_*ask 5 javascript minify deobfuscation source-maps

源映射是否有助于对先前使用Closure/Uglifyjs缩小的代码进行反混淆处理?

源地图的工作方式是否存在真正的障碍,或者仅仅是因为没有人关心它?我不太确定它是否可以以类似的方式调试编译语言中的符号(广泛用于反编译二进制文件).

我对开发人员的观点感兴趣.很高兴知道对源映射的未授权访问是否可能导致无阻碍的代码借用.

Dan*_*ien 10

JavaScript源映射与编译语言中的调试符号非常相似.实际上,Source Map Revision 3 Proposal的三个既定目标中有两个是:

  • 支持源级调试,允许双向映射
  • 支持服务器端堆栈跟踪反混淆

因此,未经授权访问源映射肯定会导致反混淆.

有一个名为maximize的Node包,它可以使用源映射对缩小的JavaScript进行反混淆处理.

请注意,当前版本的maximize(0.0.1)不适用于falafel 1.0.0+.您将需要克隆最大化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

另请参阅:我可以从缩小版本和相应的源映射文件重新构建原始JavaScript源文件吗?