使用源映射对缩小的 JS 进行反混淆
Deobfuscation of minified JS with source maps
source maps 能否帮助对之前使用 Closure/Uglifyjs 缩小的代码进行去混淆处理?
源映射的工作方式是否存在真正的障碍,或者只是因为没有人关心它而不存在?我不太确定它是否可以以类似的方式在编译语言(广泛用于反编译二进制文件)中调试符号。
我对开发者角度的答案很感兴趣。很高兴知道未经授权访问源映射是否可能导致无障碍代码借用。
JavaScript 源映射与编译语言中的调试符号非常相似。事实上,Source Map Revision 3 Proposal 的三个既定目标中有两个是:
- Support source level debugging allowing bidirectional mapping
- Support server side stack trace deobfuscation
因此,未经授权访问源映射肯定会导致反混淆。
有一个名为 maximize 的 Node 包,它可以使用源映射对压缩后的 JavaScript 进行反混淆。
请注意,当前版本的 maximize (0.0.1) 不适用于 falafel 1.0.0+. You will need to clone the 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?
source maps 能否帮助对之前使用 Closure/Uglifyjs 缩小的代码进行去混淆处理?
源映射的工作方式是否存在真正的障碍,或者只是因为没有人关心它而不存在?我不太确定它是否可以以类似的方式在编译语言(广泛用于反编译二进制文件)中调试符号。
我对开发者角度的答案很感兴趣。很高兴知道未经授权访问源映射是否可能导致无障碍代码借用。
JavaScript 源映射与编译语言中的调试符号非常相似。事实上,Source Map Revision 3 Proposal 的三个既定目标中有两个是:
- Support source level debugging allowing bidirectional mapping
- Support server side stack trace deobfuscation
因此,未经授权访问源映射肯定会导致反混淆。
有一个名为 maximize 的 Node 包,它可以使用源映射对压缩后的 JavaScript 进行反混淆。
请注意,当前版本的 maximize (0.0.1) 不适用于 falafel 1.0.0+. You will need to clone the 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?