将javascript一行代码破解为可读代码

时间:2011-09-29 23:47:54

标签: javascript coding-style ip comments

我见过人们将他们所有的JS代码放在一行中。 (像这样:http://www.drasticdata.nl/DrasticTreemap/Examples/js/swfobject.js)我知道他们正试图保护他们的知识产权。但我想阅读代码并研究它。

有没有办法让这些单行代码可读?例如,将其分解为多行?

感谢。

6 个答案:

答案 0 :(得分:13)

快速谷歌搜索“JavaScript de-obfuscator”将返回多个在线解析器,这些解析器将混淆代码格式化为格式化和可读的格式。

以下效果非常好:

http://jsbeautifier.org/

一旦语义形式,就无法将变量名称重命名为它们。你需要经历的事情......

需要注意的几个术语 缩小 混淆

缩小(维基百科)

  

计算机中的缩小(也是最小化或最小化)   编程语言,尤其是JavaScript,是一个过程   从源代码中删除所有不必要的字符,而不更改   它的功能。

混淆(维基百科)

  

混淆代码是困难的源代码或机器代码   了解人类。程序员可能会故意混淆代码   隐瞒其目的(通过默默无闻的安全)或其逻辑   防止篡改,阻止逆向工程,或作为拼图或   阅读源代码的人的娱乐挑战。程式   称为混淆器将可读代码转换为混淆代码   使用各种技术。

<强>参考

http://en.wikipedia.org/wiki/Obfuscated_code

http://en.wikipedia.org/wiki/Minification_(programming)

答案 1 :(得分:1)

例如。此工具具有“漂亮打印”选项:http://closure-compiler.appspot.com/home。有些IDE(eclipse)也有它。

答案 2 :(得分:1)

您正在寻找http://jsbeautifier.org/

答案 3 :(得分:1)

对于几乎任何语言,只需谷歌“美化”。他们将处理所有缩进等,但显然任何缩短的变量或混淆都不容易处理。

答案 4 :(得分:1)

您可以将源代码粘贴到Javascript美化器中,但是您仍然遇到了无效的变量名称问题。

考虑到源是SWFObject,它是google的开源脚本,其项目主页的链接位于您发布的源代码中:http://code.google.com/p/swfobject/

您可以在该链接下载非模糊代码。

答案 5 :(得分:1)

如果您使用的是Chrome,则开发人员工具的脚本面板中会有一个“漂亮打印”按钮。这可能比不断访问网络应用程序容易得多。

http://cristian-radulescu.ro/article/pretty-print-javascript-with-google-chrome.html