JS逆向:AST还原极验混淆JS实战

本文仅供学习交流使用,请勿用于商业用途或不正当行为

如果侵犯到贵公司的隐私或权益,请联系我立即删除

AST是抽象语法树,名字感觉很高级,其实也不用怕,可以简单理解为是将JS代码归类后的JSON,并且提供了很多方法给你对这个JSON进行增删改查。

学习一个新东西,首先一定要搞清楚它有什么用,都不知道有啥用,学习它干啥,对吧

作为一个爬虫攻城狮,JS逆向也是家常便饭了,JS逆向经常会遇到各种混淆过后的代码,极其难以阅读,这时候就可以使用AST对这些混淆代码进行一定的还原处理,得到一个相对容易阅读的JS代码,方便我们进行JS分析。

阅读本文需要有一点AST的基础,不要害怕,只需要稍微学习一点AST知识就行了,并不需要掌握AST的全部知识才能看得懂,不过最起码要对AST定位节点有一点认识,关于AST的学习大家肯定找蔡老板啊

相信只要能认真阅读完本文内容,理解其中的概念,就能对AST还原混淆代码有一点点感觉了,并会发现AST其实也不是那么难。

本次反混淆的是下面这个文件

https://static.geetest.com/static/js/fullpage.8.9.5.js复制代码

保存到本地,收缩一下代码看看整体结构

img

简单看下这几个function

img

img

img

img

img

img

嗯, 啥也看不懂…

别慌,静下心来,一点一点分析,一点一点解决!

观察代码发现里有很多地方调用了AJgjJ.DAi,搜索出515个匹配结果,如下图

img

在匹配结果中有两类调用,如上图红框标示的

第一个:带括号的AJgjJ.DAi(79); 暂时不知道是在干啥;

第二个,不带括号的AJgjJ.DAi,可以理解为

mZtVWz = ['qhicV'].concat(AJgjJ.DAi)复制代码

concat()是合并数组的作用

img

也就是说AJgjJ.DAi应该是一个数组

img

控制台打印看看

  • 13
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
js逆向AST混淆是一种通过解析和修改JavaScript的抽象语法树AST)来还原混淆代码的过程。首先,我们需要获取到混淆代码的AST表示形式。然后,根据特定的反混淆算法,对AST进行遍历和修改,以还原原始代码的结构和逻辑。在这个过程中,我们可以使用不同的技术和工具来帮助我们完成反混淆任务。 在提供的引用中,涉及了一些对AST进行遍历和修改的代码片段。例如,在引用中,使用了traverse函数来遍历AST,然后通过修改AST节点来进行替换和替换。在引用中,通过迭代和遍历AST,找到变量名和取值方法名,然后将它们替换或删除。在引用中,使用了traverse函数和eval函数来移除赋值表达式和成员表达式。 以上是一些常见的技术和方法,用于js逆向AST混淆。具体的反混淆过程可能因代码结构和混淆方式而有所不同。为了成功反混淆代码,可能需要更多的详细信息和专业知识。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【JavaScript 逆向AST混淆](https://blog.csdn.net/pyzzd/article/details/130613135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值