关注它,不迷路。
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
1.混淆js地址
https://premier.hkticketing.com/kramericaindustries.ac.lib.js
2.还原分析
代码保存下来,先用 基于babel库的js反混淆通用模板_预处理版 处理一下,得到如下js:
有点类似 某滑块的混淆js类型,也有大佬说是 elecrton 框架里的。
先找找有没有可以还原的点,看到这里:
有很多实参是 字面量 的 函数调用,看看它的函数定义:
var s3S = f1xx;
因此,我们需要将 整个 f1xx 函数 并与之相关的 代码全部抠出来,
以这个 自执行函数 为 界,将其上面的 js代码全部抠出来,保存后运行,报错:
补 一个 window 定义:
var window = {};
运行后继续报错:
原来是 T8NN 未定义,搜索 整个 混淆js 未见 T8NN 的定义,奇了怪了?
啥情况啊?
分析抠出来的代码,看到了很多分支,会不会是 环境不够,走了错误的分支导致的,去浏览器跑一下试试:
运行后发现,并没有报错。函数调用也正常:
那可能是环境问题导致步入了错误的分支。在添加简短的 环境后:
https://t.zsxq.com/15DOa3wHK
运行,还是报错,这个时候,我的选择是 直接在浏览器上写还原插件好了。
之前我在星球里分享了一个 AST实用小工具 :
https://t.zsxq.com/15gigvlTq
修改一下,导入 抠下来的函数js:
再修改下 上面的 decodeJsCode 函数,加入一下打印:
保存后,打开 这个小工具,左边编辑框随便输入一段 js代码:
b = 123;
再点击 还原预处理 按钮
发现可以正常调用。这个时候,再写AST的还原代码即可。
今天的文章就分享到这里,后续分享更多的技巧,敬请期待。
欢迎加入知识星球,学习更多AST和爬虫技巧。