<aside> 😀 接上篇,我们继续讲如何把代码进行反混淆来辅助我们分析。
</aside>
通过提取信息进行反混淆处理
首先我们先看一下这一些函数有什么特征
Ts()[cj(Xs)].apply(null, [UJ, mf, KV, Zs])
HT()[lU(b5)].call(null, d3S, mL, UT)
HT()[lU(fF)](xdS, pD, dF)
大体就是这三种形式。也就是 Xx()xx(xx) Xx()[xx(xx)].call(xxxxx) Xx()[xx(xx)].apply(xxxxx) 而且这里还有一个特点就是如果得到的字符串是相同的,那么 Xx()[xx(xx)]这个部分的内容是相同的。所以我们只需要提取到这部分的内容并且处理好他们的对应情况即可。
话不多多说上手段。
先收集这个方法下的前面两个字符。然后再根据这些字符进行一个提取。

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

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

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

得到这个对应的对象就可以使用我们的ast去解混淆了。
使用ast反混淆代码