准备

本期抠爱奇艺passwd加密JS代码,传送门,登录界面如下,我已经尝试了一次:

 

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

老老方法(输入错误账号密码)找到提交url和提交的参数(即FormData里的值):

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

 

FormData提交的参数:

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

 

可以看到passwd已经被某种加密算法加密了,那我们接下来的任务就是找到这个加密JS代码,然后使用python代码调用运行出来。

 

调试

找到passwd

选择刚才的url,查看调用栈:

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

 

仔细观察后可以看到有一个文件里包含doLogin,那就点进去,进去后搜索passwd关键字,如果你一直看我之前的文章,应该就对这些加密方法名字非常敏感了,能马上找到:

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

 

找到一个rsaFun,基本断定就是这里了,那就整上一个断点:

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

 

**断点

输入错误的密码,点击登录即可**断点:

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

 

断点**后那就点击下一步(F11)按钮开始运行,进入加密函数:

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

仔细看上图,一个getKeyPair函数,一个encryptedString函数就是我们寻找的目标,继续F11疯狂调试:

 

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

这就是getKeyPair函数,只要把A里的函数biFromHex、biHighIndex、BarrettMu搜一下定义的地方抠出来算是把这个搞定了。
下一个encryptedString:

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

依然只要找到这些方法,抠出来放一个文件里,等待python调用。

 

python调用运行

如果调用报错,记得根据报错信息缺啥补啥,比如window可以定义为window={},如果提示某某函数未定义,可能是你代码没有抠全,全原文件里继续查找,抠出来,下面是我调用的结果:
python代码:

import execjs

with open('..//js//aiqiyi.js', encoding='utf-8') as f:
    aiqiyi = f.read()
js = execjs.compile(aiqiyi)
#logid = js.call('hexEncode', "123456")
logid = js.call('get_pwd', "12345")
print(logid)

运行结果:

爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

 

结束

本期讲解了爱奇艺密码加密代码如何抠取,大家自己练上一练,如果查看完整JS代码请点击这里

源代码获取

相关文章:

  • 2021-12-11
  • 2021-11-18
  • 2022-12-23
  • 2021-09-11
  • 2021-11-18
  • 2022-03-09
  • 2022-12-23
猜你喜欢
  • 2021-07-04
  • 2021-10-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案