JavaScript反混淆插件五:Unicode转中文,代码压缩,删除注释

举报
悦来客栈的老板 发表于 2020/12/29 00:12:01 2020/12/29
【摘要】 以下内容来源于babel官方网站关于generator的介绍: https://babeljs.io/docs/en/babel-generator 所给的示例代码如下: import { parse } from "@babel/parser";import generate from "@babel/generator"; const code = "cl...

以下内容来源于babel官方网站关于generator的介绍:

https://babeljs.io/docs/en/babel-generator

  

所给的示例代码如下:


   
  1. import { parse } from "@babel/parser";
  2. import generate from "@babel/generator";
  3. const code = "class Example {}";
  4. const ast = parse(code);
  5. const output = generate(
  6. ast,
  7. {
  8. /* options */
  9. },
  10. code
  11. );

可以看到 generate函数有个 options选项,那这个选项可以完成哪些功能呢?

官网也很温馨的给出了所有的options,如下表。

我列举其中几个功能进行下演示,更多的功能直接看表格即可。

Options功能一

Unicode转中文或者其他非ASCII码字符。

代码

const output = generator(ast,opts = {jsescOption:{"minimal":true}},code);

  

应用场景

在js的混淆代码中,越来越多的使用Unicode来对可识别的中文字符进行编码,这样非常的不利于查找和分析。

Options功能二

代码压缩

代码

const output = generator(ast,opts = {"compact":true},code);

  

应用场景

著名的在线混淆网站obfuscator,有个对代码检测的选项,如果发现代码被格式化,则进入死循环,直至内存耗尽为止。如果将该代码格式化后eval到处理混淆的代码中,也将内存溢出,因此将这部分代码进行压缩,在eval到处理混淆的代码中,即可正常调用解密函数。

Options功能三

删除所有注释

代码

const output = generator(ast,opts = {"comments":false},code);

  

应用场景

代码很简单,注释又非常多的时候,有时候注释反而烦人。

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/110298488

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。