源地图有助于对先前使用Closure / Uglifyjs缩小的代码进行反混淆处理吗?
源地图的工作方式是否存在真正的障碍,或者仅仅是因为没有人关心它?我不太确定它是否可以以类似的方式调试编译语言中的符号(广泛用于反编译二进制文件)。
我对开发人员的观点感兴趣。很高兴知道对源地图的未授权访问是否可能导致无阻碍的代码借用。
答案 0 :(得分:10)
JavaScript源映射与编译语言中的调试符号非常相似。事实上,Source Map Revision 3 Proposal的三个既定目标中有两个是:
- 支持源级调试,允许双向映射
- 支持服务器端堆栈跟踪反混淆
因此,未经授权访问源地图肯定会导致反混淆。
有一个名为maximize的Node包,它可以使用源映射对缩小的JavaScript进行反混淆。
请注意,当前版本的maxim(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