Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在整个Node项目中使用UglifyJs?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要尽可能地模糊我的源代码,所以我决定使用uglifyjs2 ..现在我有项目结构有嵌套目录,我如何可以通过uglifyjs2运行它来完成整个项目而不是给它所有的输入文件

我不介意如果将整个项目缩小成单个文件或其他东西

解决方法

我在一个项目中做了非常类似的事情.你有两个选择:

>将文件保留在其目录结构中.

这是迄今为止更容易的选项,但是提供了更低级别的混淆,因为在您的代码中有足够的兴趣基本上具有文件逻辑组织的副本.

攻击者可以简单地漂亮打印所有文件,并重命名每个文件中的模糊变量名,直到他们了解发生了什么.

为此,请使用fs.readdir和fs.stat递归地浏览文件夹,读取每个.js文件输出被破坏的代码.
>将所有内容编译成单个JS文件.

这对您来说更难实施,但是确实使攻击者的生活变得更加困难,因为他们不再受益于项目的组织.

您的主要问题是将您的require@L_450_20@与不再存在的文件进行协调(因为所有内容现在都在同一个文件中).

通过使用Uglify通过分析AST的呼叫来执行静态分析我的源代码.然后我加载所需文件的源代码并重复.

一旦所有的代码被加载,我用一个自定义函数的@L_450_20@替换了require@L_450_20@,将每个文件的源代码包装在一个模拟@L_675_37@的函数中,然后把所有的代码都编译成一个文件.

我的自定义需求功能大部分是节点需要的,除了搜索磁盘的模块,而是搜索包装器函数.

不幸的是,由于它是专有项目的一部分,因此我无法真正共享#2的代码,但主旨是:

>使用UglifyJS.parse将源文本解析为AST.
>使用TreeWalker访问AST的每个节点,并检查是否

node instanceof UglifyJs.AST_Call && node.start.value == 'require'

大佬总结

以上是大佬教程为你收集整理的node.js – 在整个Node项目中使用UglifyJs?全部内容,希望文章能够帮你解决node.js – 在整个Node项目中使用UglifyJs?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。