AST(抽象语法树)实战入门:js逆向中滑块加密if语句转化

概述:AST 抽象语法树 实战 入门 案例 js逆向 js滑块 js加密 极验 瑞数 阿里滑块 5秒盾

​引言:

AST算得上是高端技能。如果把爬虫技能分为初中高三个阶段的话。常规的JS逆向找找参数,扣扣代码只能属于中级技能,而通过使用AST先对目标代码进行修复,最终转化为方便我们调试的代码,则属于高级技能。

其实AST也没有想象的那么难,懂得了基本原理,然后多练习,多思考,就可以了。

该系列文章将会循序渐进、深入浅出的给大家分享AST的知识和我学习AST的心路历程。希望大家跟着文章一点一点的去了解,去掌握。这东西我都能学会,那么你也肯定能学会!

废话不多说,我们直接开始吧~~

效果展示:

概要:

说白了就是把if...else...语句中的大括号去掉,单纯的看这个示例可能大家觉得没啥用处,但是其实这是一套复杂混淆中的一步。这个操作作为一种元操作。

转换前:

if(a){  a = 9}else{  b =9}

转换后:

if (a) a = 9;else b = 9;

思路分析:

如果consequent,alternate中只有一条语句的话,是可以不加大括号的,直接将consequent和alternate的body中的元素提取出来

插件代码:

const visitor = {  IfStatement(path){    let {test, consequent, alternate} = path.node;    if(types.isBlockStatement(consequent) && consequent.body.length == 1){      path.node.consequent = consequent.body[0]    }    if(types.isBlockStatement(alternate) && alternate.body.length == 1){      path.node.alternate = alternate.body[0]    }  }}

HISTORY/往期推荐

看雪·第五届安全开发者峰会 PPT与私密资料

js逆向:B0SS弯聘的登录接口以及某验的点选验证w参数

js逆向:手撕某手的滑块 一

Android逆向:破解一个APP的搜索接口 一

分享爬虫进阶知识,包括但不限于JS逆向,Android逆向,知名爬虫工具源码分析等

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜘蛛da侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值