关注它,不迷路。
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
1.需求
ob混淆是我们最常见的混淆代码,标准的混淆 可以用星球里的一键还原直接还原干净。但是不可能每个网站都使用标准的混淆。对于变种的ob混淆,使用星球里的 还原框架 就有点无用武之地了。
因此,写下此系列文章,帮助星友们学习反混淆的思路。
2.实例
由于网站一时半会找不到实例,之前还原过的实例可以用来演示,今天要还原的demo地址:
https://t.zsxq.com/13r5ZzxeP
3.预处理
拿到 demo.js 后,打开后发现代码被压缩了,不好分析,我们使用星球里的预处理还原框架进行处理,处理后的文件代码如下:
可以看到,开头定义的大数组,数组元素全部是字符串,确认是 旧版的ob混淆。
尝试使用星球里的框架进行还原:
https://t.zsxq.com/13pPHogXc
虽然看运行日志,解密了部分字符串,但是打开结果文件发现,还有部分字符串没有被还原,如图:
从上图中可以发现,函数 _0x14b87b 没有被还原。通篇下来,类似的函数还有很多。
观察这个函数的定义:
var _0x14b87b = _0x43ee89;
这很明显是函数名被反复赋值,因此,在还原字符串之前,还要处理一下被反复赋值的函数。
4.还原
函数名被反复赋值,可以使用星球里的插件,直接拿来用就行,插件地址:
https://t.zsxq.com/13eSeSprP
将这个插件添加到字符串还原之前,如下图所示:
再次运行 一键还原脚本,发现所有的字符串都正常还原了。
完美!
今天的文章就分享到这里,后续分享更多的技巧,敬请期待。
欢迎加入知识星球,学习更多AST和爬虫技巧。