大佬教程收集整理的这篇文章主要介绍了node.js – 在整个Node项目中使用UglifyJs?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我不介意如果将整个项目缩小成单个文件或其他东西
>将文件保留在其目录结构中.
这是迄今为止更容易的选项,但是提供了更低级别的混淆,因为在您的代码中有足够的兴趣基本上具有文件逻辑组织的副本.
攻击者可以简单地漂亮打印所有文件,并重命名每个文件中的模糊变量名,直到他们了解发生了什么.
为此,请使用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,请注明来意。