js代码压缩混淆工具(js文件混淆压缩)

在对JavaScript代码进行混淆加密时,经常会用到平展控制流,它可以将代码“展开”、打乱逻辑流程。

与之相对的,还有一种不常见的收缩控制流技术,可以将多行代码“收缩”到一行。

js代码压缩混淆工具(js文件混淆压缩)

以下用示例展示两者各自的效果。

平展控制流:

使用JShaman(专业的JS代码加密平台)对一段代码进行平展控制流操作,如下图:

js代码压缩混淆工具(js文件混淆压缩)

处理后,代码将发生如下变化:

js代码压缩混淆工具(js文件混淆压缩)

可见,平展操作之后,打乱了代码顺序,并且代码量也增加了。是种不错的JS代码混淆加密手段。

再来看收缩控制流,效果如下:

js代码压缩混淆工具(js文件混淆压缩)

代码中,比如a和b变量的赋值,原本是分别在两行中进行。而收缩之后,变成在一行中完成:

js代码压缩混淆工具(js文件混淆压缩)

这个方式,同样起到了混淆代码逻辑的效果。

用astexplorer查看代码的AST(抽象语法树),处理前:

js代码压缩混淆工具(js文件混淆压缩)

处理后:

js代码压缩混淆工具(js文件混淆压缩)

可见,AST同样得到了收缩。

此外,与平展控制流相比,它还具有一项优势:

可以压缩代码量、并可提高代码执行效率

如下图所示,处理前代码长度为226,之后变成了218。

js代码压缩混淆工具(js文件混淆压缩)

而且,此技术生成的代码将多个赋值语句转为了逗号连续语句,也会提升代码执行性能。

如下图所示,此次测试中,处理前的原始代码执行消耗0.277ms,处理后消耗0.107ms。

js代码压缩混淆工具(js文件混淆压缩)

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.yiheng8.com/42321.html