微信公众平台js算法逆向

  大家好我是J哥,js逆向已经是爬虫工程师进阶必会的了,今天我来带领大家演练一下关于微信公众平台js算法逆向的学习,希望对大家有所帮助。

一.首先我们对页面整体进行分析和我们所要配对的环境

https://mp.weixin.qq.com/
微信公众平台js算法逆向:
    - js调试工具
        - 发条js调试工具
    - PyExecJs
        - 实现使用python执行js代码
        - 环境安装:
            - 1.nodejs开发环境
            - 2.pip install PyExecJs
    - js算法改写初探
        - 打断点
        - 代码调试时,如果发现了相关变量的缺失,一般会给其定义成空字典即可
根据:Md5加密:hashvalue (反向暴力破解) 需要考虑时间和性能
    - 16进制表示
    - 16位/32位

微信公众平台js算法逆向_第1张图片

推测出pwd是md5加密

接下来我们进行全局搜索:点击Search

微信公众平台js算法逆向_第2张图片

在全局搜索中输入pwd进行抓包:点进去将有关键字的,你怀疑的进行打断点

微信公众平台js算法逆向_第3张图片

打完断点你再从新按登录按钮就会在如下图的位置停止

微信公众平台js算法逆向_第4张图片

再到发条js调试工具将你获得的js代码进行调试

注意:

js算法改写初探
    - 打断点
    - 代码调试时,如果发现了相关变量的缺失,一般会给其定义成空字典即可

微信公众平台js算法逆向_第5张图片

调试完成后将你调试好的数据存入你的编译器中(后缀是.js格式)

再写py文件就可以了

# Md5加密
import execjs

# 实例化一个node对象
node = execjs.get()

# js源文件的编译
ctx = node.compile(open('wechat.js', encoding='utf-8').read())

# 执行js函数
funcName = 'getPwd("{0}")'.format('123456')
pwd = ctx.eval(funcName)
print(pwd)

看到这里了就留下你的足迹吧,谢谢!

你可能感兴趣的:(爬虫随笔集,逆向,python,爬虫,经验分享,算法)