JS逆向-代码混淆&AST技术&抽象语法树&Obfuscator混淆&还原接口&数据节点&AI生成

Ethan医生1个月前逆向53


 JS逆向-代码混淆-加密意义&常见方法

 JS逆向-代码混淆-特征识别&自动分析

 JS逆向-代码混淆-AST语法树&AI辅助

简单来说AST就是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码的一种结构,这种数据结构其实可以类比成一个大的JSON对象。

官网:https://astexplorer.net/

参考:

https://mp.weixin.qq.com/s/bOc8PYbFdTyFRQcfSppo8w

https://mp.weixin.qq.com/s/rURCR085HiojW2_67enJkA

第一词法分析

一段代码首先会被分解成段段有意义的词法单元,

比如const name="qc”这段代码,它可被折分成四部分:

1const

2、name

3=

4、qc

每个部分都具备一定的含义。

 

第二语法分析

接着编译器会尝试对一个个法单元进行语法分析,将其转换为能代表程序语法结构的数据结构。

比如

1const就被分析为VariableDeclaration类型,代表变量声明的具体定义;

2、name就被分析为ldentifier类型,代表一个标识符

3、qc就被分析为Literal类型,代表文本内容;

 

第三指令生成

最后将AST转为可执行指令并执行

 

Literal:简单理解就是字面量,比如3"abc"null这些都是基本的字面量。在代码中又细分为数字字面量,字符字面量等;

Declarations:声明,通常声明方法或者变量。

Expressions:表达式,通常有两个作用:一个是放在赋值语句的右边进行赋值,另外还可以作为方法的参数。

Statemonts:语句。

Identifier:标识符,指代变量名,比如上述例子中的name就是ldentifier。

Classes:类,代表一个类的定义。

Functions:方法声明。

Modules:模块,可以理解为一个Node.js模块。

Program:程序,整个代码可以称为Program。

 

OB混淆还原:

https://obfuscator.io/

https://deobfuscate.io/

https://webcrack.netlify.app/

https://deli-c1ous.github.io/javascript-deobfuscator/


标签: JS逆向

相关文章

JS逆向-开发者工具&网络请求筛选&调用堆栈链&断点调试方法&数据作用域&控制台分析

➢ JS逆向-F12开发者工具-使用指南➢ JS逆向-F12开发者工具-调用堆栈➢ JS逆向-F12开发者工具-断点调试#前置说明1、JS逆向与安全事实上,前端的逆向通俗...

JS逆向-反调试绕过&事件检测&无限Debug&篡改猴Hook&替换指向&匹配修改&条件断点

JS逆向-反调试绕过&事件检测&无限Debug&篡改猴Hook&替换指向&匹配修改&条件断点

➢ JS逆向-F12开发者工具-使用指南➢ JS逆向-F12开发者工具-调用堆栈➢ JS逆向-F12开发者工具-断点调试➢ JS逆向-反调试分析技术-检测&am...

JS逆向-Sign签名&绕过技术&算法可逆&替换库模拟发包&堆栈定位&特征搜索&安全影响

➢ JS逆向-Sign绕过-签名影响&加密解密Sign(签名)机制广泛应用于API请求、数据传输、身份验证等场景,用于确保数据的完整性和来源可信性。它对渗透测试(Penetratio...

JS逆向-安全辅助项目&Yakit热加载&魔术方法&模版插件语法&JSRpc进阶调用&接口联动

#Yakit的热加载参考:https://yaklang.com/products/Web%20Fuzzer/fuzz-hotpatch简单来说主要以数据包发包前和发包后的数据修改功能 1、...

JS逆向-安全辅助项目&接口联动&JSRpc进阶调用&BP插件autoDecode&JsEncrypter(下)

➢ JS逆向-项目-项目联动&自动接口&Burp发包#JSRpc进阶当我们遇到一些前端加密的时候,通常我们会去逆向JS,找到加密函数,然后使用burp插件或者python实现...

JS逆向-HOOK钩子&脚本开发&注入逻辑&油管猴配置&绕过Debug&定时循环&构造函数

➢ JS逆向-F12开发者工具-使用指南➢ JS逆向-F12开发者工具-调用堆栈➢ JS逆向-F12开发者工具-断点调试➢ JS逆向-反调试分析技术-检测&am...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。