JavaScript反混淆插件六:删除空行和空语句

举报
悦来客栈的老板 发表于 2020/12/29 01:03:21 2020/12/29
【摘要】 在 反混淆插件五 这篇文章中,介绍了 options 的一些功能,忘记介绍如何删除空行了。也很简单,注意 retainLines 这个即可,代码如下: const output = generator(ast,opts = {"retainLines":true},code); 也可以利用 UltreEdit 这个工具的 正则替换来删...

在 反混淆插件五 这篇文章中,介绍了 options 的一些功能,忘记介绍如何删除空行了。也很简单,注意 retainLines 这个即可,代码如下:

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

  

也可以利用 UltreEdit 这个工具的 正则替换来删除空行。即将 ^p^p 替换为 ^p 即可。

当然,代码太过于紧凑也十分的不好看,这个看大家的喜好了。

下面介绍如何删除 空语句。有时候将源代码利用AST调整后,会有很多类似这样的代码:


   
  1. var a = 123;
  2. ;
  3. var b = 456;

其中,中间的 ; 这一行是没必要存在了,那如何编写插件删除没啥用的这行呢?

将代码在在线解析网站上看看:

解析如上图,将鼠标移动到中间的那行 ; ,解析网站自动帮我们定位到这一行代码的AST结构。

可以看到它是一个 EmptyStatement,想要删除这个节点,方法很简单,直接遍历这个节点,再调用 remove 方法即可,代码如下:


   
  1. const visitor = {
  2. EmptyStatement(path)
  3. {
  4. path.remove();
  5. },
  6. }

就是这么的简单。

好了,就介绍到这里了,大家有什么不懂的地方,可以在群里问,也可以在星球里提问。

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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