我了解JS矿工,混淆器和矿工。我想知道是否存在任何现有工具(或任何快速编码解决方案)来部分混淆JavaScript。我的意思是说它应该变得难以阅读,但不会显得丑陋或缩小。它应该保持缩进,但要保留注释,并部分更改变量名,从而使它们不清楚,而不必像混淆器一样将它们转换为“ a,b,c”。

这样做的目的可能是采用显式且可重用的代码,并使其隐式且难以被其他人重用,而又无法自己进行工作。

从哪里开始实现这一目标的任何想法?也许编辑现有的混淆器?

最佳答案

[此答案是对OP请求的直接响应]。

语义设计JavaScript混淆器将完成您想要的操作,但是您需要两次通过。

第一步,以混淆器的身份运行它;它将重命名标识符(尽管您可以控制执行多少操作),去除空白和注释。如果限制其重命名标识符的能力,则会失去混淆器的力量,但这是您的选择。

在第二遍,将其作为prettyprinter运行;它将再次引入漂亮的缩进。
(实际上,迷恋的想法来自于构建prettyprinter;如果您可以打印漂亮,肯定很容易打印丑陋的东西)。

从使用代码的角度来看,最好以自己喜欢的任何方式使用主副本,并附带缩进和漂亮的注释作为文档。准备好进行混淆时,可以运行混淆器,并发送混淆的结果。可以使用混淆步骤中产生的混淆后的原始名称的映射,将混淆结果中报告的涉及混淆名称的错误映射回原始名称。

这是我公司的产品。我会提供一个链接,但是这样做时我非常讨厌它,因此您必须通过我的个人简介或Google来查找它。

PS:它完全按照@georg的建议运行,通过解析为AST,修改和prettyprinting。它不使用esprima。

10-06 00:05