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

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

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

所给的示例代码如下:

import { parse } from "@babel/parser";
import generate from "@babel/generator";


const code = "class Example {}";
const ast = parse(code);


const output = generate(
  ast,
  {
    /* options */
  },
  code
);

可以看到 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);

应用场景

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值