AST反混淆实战|某里滑块三重switch压缩详细分析过程

本文详细介绍了如何通过AST抽象语法树进行JavaScript代码反混淆,特别是针对三重switch压缩的场景。通过分析变量关系,得出公式:rr = cr + (kr << 5) + (or << (5 * 2)),并验证了该公式在不同rr值下的正确性,从而实现混淆代码的还原。这种方法需要深入理解AST和位运算,对于提升代码分析能力具有实践价值。
摘要由CSDN通过智能技术生成

✧✧ 本篇文章只用于学习交流,切勿用于商业用途,如果侵犯权益,请与作者联系,本人会在第一时间将其删除。✧✧

之前写的这篇文章 AST反混淆实战|某里滑块三重switch压缩思路分享,只是提供了部分思路,并不能通用所有的情况。这里写出详细的版本,供大家参考。

还是以下面的代码进行分析:

be612c3864742a491e59e8b26e145973.png

可以看到,分别匹配的 是 cr,kr 和 or 这三个变量的值。这三个变量的值是可以通过AST遍历获取到的。

不妨大胆猜测一下,rr 的值可以由这三个值来反推吗?

把上面的代码改改,直接拿到控制台运行看看:

var rr = 7587;
var cr = 31 & rr
                  , br = rr >> 5
                  , kr = 31 & br
                  , ir = br >> 5
                  , or = 31 & ir;
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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值