Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

JS源码分析

直接请求抓包如下:

Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥

我们看到密文就是一个MD5的形式。

那么我们来分析下JS代码。

搜索pwd的时候,我们看到有49个。为了方便,我们可以试着搜索pwd:pwd :pwd=pwd =

在搜索pwd=时,就看到了关于md5的函数:

Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥

我们打断点定位后,发现果然是这段,我们点进去这个md5的函数:

Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥

进去之后我们看到了这段md5的实现方式。

当我们准备复制这一长段代码的时候,我们看到这是一个函数内包含的函数,那就很容易想要这个是一个闭包

Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥

那么,我们就把这个闭包函数,全部复制到调试工具里。

然后我们看到,自动就生成了一个md5函数

Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥

计算表达式,我们就获取到了密文:

Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥


Python代码

JS分析完了,那Python代码就很容易写了。

创建一个fanke.js文件,把刚才的JS代码复制进去。

import execjs

# 进行密码逆向
node = execjs.get()
ctx = node.compile(open('./fanke.js', encoding='utf-8').read())
funcName = 'md5("{0}")'.format('123456')
pwd = ctx.eval(funcName)
print(pwd)

运行后,我们就看到了结果!

Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥

注意:

如果需要逆向的js函数的实现是出现在一个闭包中,那么直接将闭包的整个代码块拷贝出进行调试即可。

关注Python涛哥!学习更多Python知识!

Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥

脚本宝典总结

以上是脚本宝典为你收集整理的Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥全部内容,希望文章能够帮你解决Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: