JS反向爬虫教学,MD5算法介绍。Python爬虫:重写某平台的js算法。

MD5简介

MD5简介

MD5算法一般指MD5。MD5消息摘要算法是一种广泛使用的加密散列函数,可以生成128位(16字节)的散列值,以确保完整和一致的信息传输。

这里我们以代码为例:某平台js算法被重写!

分析js源码

我们打开网站,输入信息,拿起包裹。

如您所见,用户名显示正确,而pwd是一串字母数字字符。

很容易知道这是md5。

那么我们如何得到这个清晰的文本呢?

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

1.源码里搜索参数pwd

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

在这里,我不想直接ctrl f,直接在图中的标记处搜索!

搜索后有很多内容!首先,你可以确定。css文件肯定不是,因为加密算法肯定在js文件里。让我们点击第二个,看一看:

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

2.js文件里定位搜索pwd

内容搜索直接控制

搜索后,我们看到有20个。

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

3.使用断点

20个pwd,首先第一个肯定不是。

第二个,在1183行,是一个函数,看起来是?

如果您有疑问,请单击向下箭头设置断点。

以此类推,只要有20个疑点,先破分。

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

一旦我们都准备好了,让我们再次点击登录。发现代码位于1883行。

基本上就是这样。

你可以把鼠标放在这个函数的源代码里,系统会提示‘123456’。

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

4.复制JS代码,使用调试工具

确定以上功能后,我们点击进入!

那么我们就在该点右上角的第三个位置(转到下一个函数调用)。

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

那样地

后我们选中return这段代码,就会看到‘123456’加密后的md5。

发现是和网站post提交的pwd是一样的。

那就肯定确定是这段js函数了

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

我们看到,这里的 n、e、t 等等参数都是未知的,那么我们需要复制大括号以上的所有代码。

粘贴到JS调试工具里,先点击格式化,再点击加载。

我们看到有个错误信息:n未定义

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

5.改写js代码

没有n,那么我们就在代码最上面定义一个n:

var n = {}

然后我们再点击加载就成功了~

成功后,我们可以把最下面的的这段函数n.exports改为getPwd.

并计算下这个表达式。可以看到计算后的结果是正确的!

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写


Python执行js代码

js代码我们有了,我们如何在Python代码里执行呢?

1.环境安装

  • nodejs开发环境(自行安装)
  • pip install PyExecJs

2.复制刚才的js代码

创建wechat.js文件放在同目录,把刚才复制的js代码写进去

3.Python代码

#!/usr/bin/env python3# -*- coding: utf-8 -*-import execjs# 1.实例化一个node对象node = execjs.get()# 2.js源文件编译ctx = node.compile(open('./wechat.js', encoding='utf-8').read())# 3.执行js函数funcName = 'getPwd("{0}")'.format('123456')pwd = ctx.eval(funcName)print(pwd)

代码执行后,我们就看到了结果~

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

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

JS逆向爬虫教学,MD5算法介绍。Python爬虫:对某平台js算法改写

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50771.html

(0)

相关推荐