有什么好的工具可以逆转 Minify 对 JavaScript 的影响?

逆向工程 混淆 javascript
2021-06-13 01:27:50

是否有任何脚本和/或在线工具可以逆转缩小的影响?

我特别想取消缩小缩小的 JavaScript 文件。变量重命名不是大问题,我希望它具有足够的可读性以便能够分析执行。

4个回答

我特别想取消缩小缩小的 JavaScript 文件。变量重命名不是大问题,我希望它具有足够的可读性以便能够分析执行。

您的问题标题仅表示反转缩小的代码,不一定理解它。但是,如果您试图了解它,Opera Dragonfly 听起来像是一个您可能会发现非常有用的工具......

我一直使用 Dragonfly 来分析缩小的代码。除了拥有漂亮的打印机外,它还具有非常方便的分析功能。

这是 jQuery.min 的全部缩小版...... jQuery,尽其所能。

我在这里圈出的按钮是漂亮的打印机,它突然将代码变成了这样: 美化 jQuery.min

这是一个不错的开始,但如果不了解执行过程中的情况,仍然很难理解。

首先,您需要确定您试图了解缩小文件功能的哪一部分。事件断点对此非常方便,因为您几乎可以为任何用户输入或元素加载设置它们。例如,如果我想查看鼠标悬停事件发生时 jQuery 中发生的情况,我可以为“鼠标悬停”添加一个事件断点。这样,当我将鼠标移到特定元素上时,我可以看到代码的入口点在哪里。

当您的代码遇到断点时,您会进入一种模式,您可以像在许多 DOM 调试器中一样,与您正在检查的代码的当前状态进行交互。但是您可以通过将鼠标悬停在代码段上来实现,因此记住代码上下文真的很容易。

事件断点和分析。

您还可以使用与源窗口相同的方式检查范围和谁从“脚本”选项卡中的“状态”子选项卡中引用了什么内容。因此,您可以查看一个变量是否覆盖了另一个变量,或者某处是否发生了奇特的闭包魔法,或者变量实际上源自哪个范围。此外,如果您查看 DOM 元素,您可以将鼠标悬停在该元素上以在页面上突出显示它。(见最后一张图。)

状态选项卡。

Dragonfly 控制台也有这个鼠标悬停功能...而且所有东西都有 tab 补全,所以你可以从任何状态执行任何代码,在任何执行级别检查,重新分配变量,运行测试,或者只是使用 [Tab] 补全导航到做任何事情来弄清楚你正在查看的代码是做什么的。 控制台选项卡。

Opera 的检查员肯定会帮助逆向和理解缩小或混淆的代码。

我更喜欢使用 Google Chrome 开发人员工具中内置的漂亮打印机。

这是缩小后的代码: 在此处输入图片说明

按下漂亮的打印按钮,您会得到以下信息: 在此处输入图片说明

一个很好的起点是JBeautifier通常,这取决于所使用的 minify 方法。这个格式化代码并且有很多选项。它还可以解压“打包”脚本(挤满了院长爱德华的封隔器)。此代码的一个方便的变体可用作 Firefox 插件Javascript Deminifier

我最近在http://www.jsnice.org/尝试了 50+KB 的单个压缩 JavaScript 文件,其中包含许多 Cordova 的运行时拒绝执行的动态修改代码(针对针对 Windows Phone 8.1 和 Windows 10 的应用程序)。结果令人惊讶,因为它识别出匹配的代码片段,这些代码片段可以从数千个开源项目中未经缩小就可用。我希望它在未来对你和其他人有所帮助。