type
status
date
slug
summary
tags
category
icon
password
接上篇,我们继续讲如何把代码进行反混淆来辅助我们分析。
📝 主旨内容
反混淆思路讲解
通过提取信息进行反混淆处理
首先我们先看一下这一些函数有什么特征
大体就是这三种形式。也就是 Xx()[xx(xx)](xxxxx) Xx()[xx(xx)].call(xxxxx) Xx()[xx(xx)].apply(xxxxx)
而且这里还有一个特点就是如果得到的字符串是相同的,那么 Xx()[xx(xx)]这个部分的内容是相同的。所以我们只需要提取到这部分的内容并且处理好他们的对应情况即可。
话不多多说上手段。
先收集这个方法下的前面两个字符。然后再根据这些字符进行一个提取。

符合我们的要求就把他记录下来。然后提取出来。

这样我们就得到所有符合条件的函数。
然后我们写一个方法。

按照这样去复制到浏览器中然后让他去调用然后记录到对象中。然后再拷贝到剪贴板中。

得到这个对应的对象就可以使用我们的ast去解混淆了。
AST反混淆分析
使用ast反混淆代码
首先我们要读取需要反混淆的代码。然后找到这些函数,并且名字是一样的。还有他的规则是我们上面的一步一步判断符合条件。

然后最后在写到对应的结果上。然后再重新解释成我们正常的代码。
最后附上我的运行截图吧。

效果

使用了反混淆后,在替换掉原来的代码。最后在浏览器中看到的情况。可以看出很多关键字段就非常清晰了。

然后再刷新。浏览能不能得到正常的结果,效果如下:

非常完美。正确的结果也可以得到。
- 作者:猿榜编程
- 链接:https://www.yuanbang.lol//article/203202ba-3e23-8044-9fd2-c01eab356bd9
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。