利用AST对抗js混淆(一) 基础知识

本文介绍了对抗JavaScript混淆的基础知识,主要围绕AST(抽象语法树)和Babel展开。讲解了如何安装和使用Babel,包括Babel的官方文档和插件API。同时,提到了AST节点类型对照表和一些关键函数,如path、ancestry、comments、context、conversion、evaluation、family、introspection、modification、removal、replacement,以及作用域管理。此外,还分享了其他关于AST反混淆和JavaScript逆向的资源。
摘要由CSDN通过智能技术生成

准备工作:

1.网站及工具

JavaScript Obfuscator Tool   主要研究对象,主要是研究此网站的各种混淆方法及破解办法。

JS NICE: Statistical renaming, Type inference and Deobfuscation          用来格式化代码,方便调试。

notepad++                  编辑代码。

https://astexplorer.net/     用来查看各种代码的AST结构。

2.nodejs的安装

官方网站    https://nodejs.org/zh-cn/     

win10 可以直接下载最新版进行安装

win7   最高似乎只能安装nodejs 13.14.0版本 ,需要去页面https://nodejs.org/zh-cn/download/releases/ 下载安装。

安装过程略。

3. vscode的安装

下载地址:https://code.visualstudio.com/   安装过程略

主要用于调试代码。


babel安装及相关文档

1. Babel的安装

新建一个文件夹,cmd窗口转到此路径下,首先初始化项目:

npm init

然后执行以下命令:

# babel遍历器
npm install @babel/traverse --save

# code解析为ast
npm install @babel/parser --save

# ast操作相关工具类
npm install @babel/types --save

# ast还原为代码
npm install @babel/generator --save

接着可参考参考:https://blog.csdn.net/weixin_40352715/article/details/109809754 

可将此文章中的例子在vscode中调试以下,一来试一试环境是否已配置好,二来也先看一看效果。

2. babel官方文档

接着学习基础知识:

babel-handbook/plugin-handbook.md at master · jamiebuilds/babel-handbook · GitHub

babel-handbook/user-handbook.md at master · jamiebuilds/babel-handbook · GitHub

PS:Pandoc 可以将md文件转换为word或者pdf文件。

3.babel插件常用api

此部分来源:https://www.jianshu.com/p/7c8c5ae1e4be

行文至此,顺便梳理下babel中的一些api,市面上很少有这方面的内容,一般都是讲解插件配置和一些demo插件的编写。以下的内容都是参考源码和注释得来的。

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值