javascript - 用于客户端文件的 Node.js 混淆工具

标签 javascript node.js obfuscation

我正在寻找类似此工具或类似工具: http://javascriptobfuscator.com/Javascript-Obfuscator.aspx

但是作为node.js的模块,因此您可以在发送客户端js文件之前对其进行混淆。

上面 url 中的工具做的事情很少,但最重要的是它将引号和变量名称之间的字符串更改为不可读的形式。

我尝试编写仅编码字符串的代码,但这使我的代码损坏:

var output = str.replace(/(")(([^"\\]|\\.)+)(")/gi, function(match, p1, p2, p3, p4) {
     return p1 + someEncodingFunc(p2) + p4;
});

编辑:

感谢 robertklep,我找到了 Confusion 模块。它几乎做得很好。也许有人可以帮助我解决这个问题? https://github.com/uxebu/confusion/issues/1

您可以在项目页面的此代码输出中看到问题:

(function(_x24139) {
  a[_x24139[0]](called[_x24139[1]](_x24139[2]));
  an[_x24139[3]](_x24139[4], _x24139[5], _x24139[6]);
}).call(
  this,
  ["property", "with", "a string literal", "other", "call", "is", "here"]
);

我需要的只是混淆数组中的这些字符串。我注意到如果字符串中有任何 utf8 字符,那么它将被混淆为\uXXXX 形式。但只有utf8。如果这也会将 ascii 混淆为\xYY 形式......基本上所有字符。

最佳答案

你为什么不试试JScrambler反而?。它不仅具有更多针对字符串和控制流的源代码转换,而且还具有一堆代码陷阱和称为“ self 防御”的运行时保护。 而且,它对我来说开箱即用。他们声称兼容所有 JS 库,目前据我所知,他们是唯一正式支持 Node.js 的解决方案:
Jscrambler Compliance Report

我认为 Uglify 不是一个好的选择。它是一个代码优化器,并不是为了保护您的代码。它确实重命名了变量和函数,但这种保护太弱,值得考虑。

关于javascript - 用于客户端文件的 Node.js 混淆工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650299/

相关文章:

javascript - 如何将值传递给 JavaScript 数组?

javascript - jQuery 单击事件不适用于 li 标签

node.js - 客户端 Zeromq 中的监听事件 - Node.js

javascript - 从 api 响应中获取 pdf 文件

javascript - 混淆: Make file-min. js?

javascript - 帖子内的图片逐渐调整大小,在 Android 浏览器中宽度和高度为零

javascript - 从浏览器控制台自动刷新页面

node.js - 表达多个回调在 app.get 中的工作方式

android - 如何防止逆向工程apk获取服务器登录?

android - 有没有办法只混淆真实代码,而不混淆库?