JS源码分析
直接请求抓包如下:
我们看到密文就是一个MD5
的形式。
那么我们来分析下JS代码。
搜索pwd
的时候,我们看到有49个。为了方便,我们可以试着搜索pwd:
、pwd :
、pwd=
、pwd =
。
在搜索pwd=
时,就看到了关于md5
的函数:
我们打断点定位后,发现果然是这段,我们点进去这个md5
的函数:
进去之后我们看到了这段md5
的实现方式。
当我们准备复制这一长段代码的时候,我们看到这是一个函数内包含的函数,那就很容易想要这个是一个闭包
:
那么,我们就把这个闭包函数,全部复制到调试工具里。
然后我们看到,自动就生成了一个md5函数
:
计算表达式,我们就获取到了密文:
Python代码
JS分析完了,那Python代码就很容易写了。
创建一个fanke.js
文件,把刚才的JS代码复制进去。
import execjs# 进行密码逆向node = execjs.get()ctx = pile(open('./fanke.js', encoding='utf-8').read())funcName = 'md5("{0}")'.format('123456')pwd = ctx.eval(funcName)print(pwd)
运行后,我们就看到了结果!
注意:
如果需要逆向的js
函数的实现是出现在一个闭包中,那么直接将闭包的整个代码块拷贝出进行调试即可。
关注Python涛哥!学习更多Python知识!
如果觉得《Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥》对你有帮助,请点赞、收藏,并留下你的观点哦!