JS解混淆-AST还原案例

一、js混淆了解
1、为什么要混淆?
  • js混淆的作用:为了防止爬虫通过分析js内容,轻易的还原出网站的加密逻辑,而做出的安全防御手段之一,常常将一个逻辑简单的可能十几行算法代码思路,通过变量混淆替换、增加冗余无效代码、增加无限debugger反调试功能、增加多层的套娃式if~else代码、以及埋陷阱等混淆成几千行的js代码,给人第一印象难读,对入门分析者造成恐惧心理
  • 如图,我们常见的ob混淆就是这个原理,左侧也就5行的代码,经过ob混淆这么一个操作,就有了右侧很多_0x开头的字符串/函数混淆的代码,逻辑调用分析难度增加,是反爬的常用手段
    在这里插入图片描述
    在这里插入图片描述
2、常见的混淆模样(ob/sojson/jsfuck/AAencode/jjEncode/eval)
  • 拿输出hello world为例子,常见的混淆有这6种:ob混淆、sojson混淆、eval混淆、jsfuck混淆、AAEncode混淆、jjEncode混淆,用的比较多的混淆是ob混淆、sojson混淆、eval混淆这三种

    function hi() {
        console.log("Hello World!");
    }
    hi();
    
  • ob混淆ob混淆网址
    在这里插入图片描述

  • sojson混淆sojson混淆网址
    在这里插入图片描述

  • eval混淆eval混淆网址
    在这里插入图片描述

  • jsfuck混淆: jsfuck官网混淆网址jsfuck混淆网址,常用解决方法,鼠标将光标放到最后一个括号位置,找到对称的高亮的括号,将两个括号的内容复制出来,用eval执行试试,或者直接控制台打印输出看看
    在这里插入图片描述
    在这里插入图片描述

  • AAEncode混淆:AAEncode混淆网址,常用解决方法去除末尾(‘_’),加上toSting()
    在这里插入图片描述

  • jjEncode混淆jjEncode混淆网址,常用方法去除末尾(),加上toSting()
    在这里插入图片描述

  • eval、ob、sojson混淆案例应用

二、AST初步认识
  • ast 又称 抽象语法树, 比如将js代码已树节点的形式展现,有点类似html源码的各个标签父子关系,关于ast的介绍可以进一步看这篇文章

  • ast的作用:ast作用主要是将混淆的难读的js还原成可读性高的js,对整个js的逻辑不做任何改变,你可以理解为化繁为简,可见性的瘦身,也许网页上是1w多行的混淆代码,瘦身后只有不到1千行;脱混淆后要注意替换到网页试试看能否能用
    在这里插入图片描述

  • 初次入门尝试体验案例,一般是打开可视化显示AST结构工具分析节点;处理逻辑:就是一颗树,不停的找分支,确定当前分支的各个属性特性,即定位要改的节点就是找type,然后对该type节点操作即可,你可以简单理解为html里面找到了父标签然后对子标签进行操作,理解为xpath或者css选择器的逻辑也不为过
    在这里插入图片描述

三、解混淆常用的方法
  • 30
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答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还原工具是一种强大的反混淆技术,它可以用于提高代码的安全性和保护知识产权。但需要注意的是,还原工具不应该被用于不道德的行为,如盗版或攻击等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值