AST反混淆实战篇二十一|逗号表达式的还原

逗号表达式是js混淆中常用伎俩,相信大家都见识过,明明几个不相干的代码,偏偏凑到一个语句里,干扰阅读和调试。而那些混淆严重的代码,逗号表达式经常出现在赋值语句、for语句、return语句和条件语句里,阅读起来非常困难。如果能将个逗号表达式的代码还原出来,而且代码逻辑不变,将大大的提高可读性,增强调试。

一.插件名称

逗号表达式还原。

二.还原实例

还原前:

for(var i=0; i<10 ;i++)
{
  a = a+1,b = b+2,c = c+3; 
}

还原后:

for (var i = 0; i < 10; i++) {
  a = a + 1;
  b = b + 2;
  c = c + 3;
}

三.是否通用

是。

四.前置插件

前置插件: 为避免出错,在调用本插件之前,需要调用其他的插件,可以理解为

调用本插件前的准备,减少bug。

https://t.zsxq.com/Em2baII


https://t.zsxq.com/uVjujYF

切记,任何情况下调用 还原逗号表达式的插件时,都需要优先调用上面的两个插件,否则可能还原出错。

五.还原思路

  • 还原逗号表达式,肯定是遍历 SequenceExpression 节点,为避免出错,采用exit方式遍历。

  • 过滤掉一些无法进行还原的节点,比如逻辑表达式 的 Right 节点,条件表达式的父节点也是条件表达式等一些还原后导致出错的节点

  • 保留最后一个expression,用以替换整个SequenceExpression 节点,见代码中的pop操作。

  • 其他的expression节点构成 ExpressionStatement 节点后依次插入。

  • 最后重构scope。

六.插件源码

https://t.zsxq.com/6qzjauf

AD:

欢迎加入我的个人星球,编写了很多有用的插件,只需要稍微有一点js基础即可,对爬虫工程师和前端工程师均有一定的帮助。

010a46ef112214546afa379d6f852c65.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ast混淆JS还原工具是一种强大的工具,可以帮助程序员和安全研究人员解决混淆JavaScript问题。该工具的原理是通过解析抽象语法树(AST)来还原混淆JavaScript代码,从而让代码恢复其原有的结构和逻辑。 AST混淆JS还原工具的优点是可以解决常见的混淆技术,如变量名替换、函数名替换、控制流混淆等。同时,该工具还支持多种JavaScript框架和库,可以有效避免由于第三方库混淆而导致的代码不可读性问题。 但是,需要注意的是,AST混淆JS还原工具并不能完全解决所有的混淆问题。在某些情况下,可能需要手动修改代码或使用其他工具进行修复。此外,该工具也可能会导致一些性能问题,特别是在处理大型JavaScript代码时。 总的来说,AST混淆JS还原工具是一种非常有用的工具,可以帮助开发人员和安全研究人员节省大量时间和精力。但是,使用该工具还需要仔细考虑其适用性和局限性。 ### 回答2: AST混淆JS还原工具是一种专门用于还原JavaScript代码的工具。AST是抽象语法树的缩写,它是一种能够把代码转换成树形结构的工具。在JavaScript中,所有的代码都是由AST表示的。因此,混淆代码实际上是对AST进行混淆,而混淆工具就是通过分析混淆后的AST还原出原始代码。 AST混淆JS还原工具有很多种,它们主要使用了一些静态和动态分析技术。静态分析就是直接分析混淆的代码,从中找到解密算法和加密密钥等关键信息,并使用这些信息来解密代码。动态分析则是通过模拟代码的运行环境来解密代码,在代码运行时注入一些代码片段,以便找到解密算法和密钥。 无论是静态分析还是动态分析,AST混淆JS还原工具都需要在很多方面投入时间和精力。首先,它们需要分析混淆代码的结构,找出其中的规律,并将其还原AST中。其次,它们需要处理各种类型的混淆,包括命名混淆、结构混淆、代码段混淆等。最后,它们需要使用一些优化技巧来提高还原的效率和准确性。 总之,AST混淆JS还原工具是一种强大的混淆技术,它可以用于提高代码的安全性和保护知识产权。但需要注意的是,还原工具不应该被用于不道德的行为,如盗版或攻击等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值