python爬虫:小程序逆向实战教程
根据我之前发表的文章,我们进行延伸实战https://blog.csdn.net/weixin_64809364/article/details/146981598?spm=1001.2014.3001.5501
1. 想要爬取什么小程序,我们进行搜索
2. 找到我们vx小程序的文件地址,我们就可以进行破解
- 破解步骤强看一下上一篇文章:开头的网址
- 下面图片就是我们破解成功的图片
3. 使用微信开发者工具打开我们的破解之后的小程序(根据下面的图片勾选配置,不然会影响你的账号)
4. 如果控制台没有报错或者左侧直接可以加载出来,我们小程序的界面,这时候我们的前期工作就已经完毕,接下来就是js请求加密、解密,获取批量数据(注意:不要干扰小程序的正常运行,违法行为)
5. 我们先进行响应解密
- 通过输出,我们可以看出来需要响应解密(我们先进行入口定位):这里我们采用关键字搜索decrypt(
- 通过关键字搜索,我们找到了,响应解密入口,看到iv,我们就可以猜到它使用了AES加密算法,我们就可以使用AES进行解密
- 将图片中的代码复制粘贴,放到pycahrm中进行调试,并且再python中获得加密值,我们进行测试,最终效果如下:
const CryptoJS = require("crypto-js")function i(e, n) {var r = "WAG0JIUGYALACVJF", i = CryptoJS.enc.Utf8.parse(r) // key, t = CryptoJS.enc.Utf8.parse(n); // ivreturn CryptoJS.AES.decrypt(e, i, {iv: t,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)
}// 响应解密测试
e = "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"
n = "HVK6TCJKWBLYFT2T"
- 然后我们使用python的第三方模块,使用python调用js代码
- 安装第三方模块:pip install execjs
- 我们在使用前要导入以下代码(在windows电脑下,mac不需要):
import subprocess
from functools import partialsubprocess.Popen = partial(subprocess.Popen, encoding="utf-8")import execjs
# -*- coding: utf-8 -*-
# coding=utf-8
import base64import requests
import time
import subprocess
from functools import partialsubprocess.Popen = partial(subprocess.Popen, encoding="utf-8")import execjsheaders = {'authority': 'min-api.xliii.cn','user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2407110 MicroMessenger/8.0.5 Language/zh_CN webview/','content-type': 'application/json','accept': '*/*','sec-fetch-site': 'cross-site','sec-fetch-mode': 'cors','sec-fetch-dest': 'empty','referer': '',
}params = {'requestData': '3x5T5fobv/lgYOMehTSyKGQD547tWeTGXItoZhgPp0fdGFU9fLYHyxyriTtogilHi2THpYQGaGYne7kTTUQ/vAcuyg03cf2ijUKRdbV9DNcxl17qsxy3PXtIHU2jYIBNv7g7bywLOSKdhrOlSIpDEM2PVCfOGbirswA0LP1wlTM=','iv': 'zbdozs4sjdtIxKmY',
}response = requests.get('', params=params, headers=headers)
ret = response.json().get('data')
b64 = ret.get('data')
# print(b64)# 响应解密
with open("APP_decrypt.js", encoding="utf8") as f:jsCode = f.read()
js_compile = execjs.compile(jsCode)
n = "HVK6TCJKWBLYFT2T"
ret = js_compile.call("i", str(b64), n)
print(ret)
- 展示效果如下,我们可以获取到数据了:
6. 我们在进行请求加密
- 我们在network中发现,要使用请求加密,所以我们直接使用关键字搜索
- 我们把所需要的代码复制到pycharm中进行分析调试
- 最终效果如下:
// 请求加密
const CryptoJS = require("crypto-js")let c = '{"res_id": 88038, "appid": "wx41cd4f32cf8164b3", "ver": "7.0.0", "min_push": 0, "scene": 1001}'function t(e, n) {var r = "WAG0JIUGYALACVJF", i = CryptoJS.enc.Utf8.parse(r), t = CryptoJS.enc.Utf8.parse(n);return CryptoJS.AES.encrypt(e, i, {iv: t,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7}).toString()
}function d() {for (var e = "", a = ["1", "2", "4", "5", "3", "8", "0", "7", "9", "6", "A", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "S", "D", "F", "G", "H", "J", "K", "L", "q", "w", "S", "e", "a", "s", "d", "z", "x", "c", "v", "f", "r", "t", "g", "b", "y", "h", "n", "m", "j", "u", "i", "o", "k", "l", "p"], n = 0; n < 16; n++)e += a[(Math.random() * (a.length - 1)).toFixed(0)];return e
}let u = d()
// console.log(ret)
function s(){return {'requestData':t(c,u,undefined),'iv':u}
}console.log(s())
- 然后我们也搬到python中,使用python进行调试:
7.完整代码如下:
# -*- coding: utf-8 -*-
# coding=utf-8
import base64import requests
import time
import subprocess
from functools import partialsubprocess.Popen = partial(subprocess.Popen, encoding="utf-8")import execjsheaders = {'authority': 'min-api.xliii.cn','user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2407110 MicroMessenger/8.0.5 Language/zh_CN webview/','content-type': 'application/json','accept': '*/*','sec-fetch-site': 'cross-site','sec-fetch-mode': 'cors','sec-fetch-dest': 'empty','referer': '',
}params = {'requestData': '3x5T5fobv/lgYOMehTSyKGQD547tWeTGXItoZhgPp0fdGFU9fLYHyxyriTtogilHi2THpYQGaGYne7kTTUQ/vAcuyg03cf2ijUKRdbV9DNcxl17qsxy3PXtIHU2jYIBNv7g7bywLOSKdhrOlSIpDEM2PVCfOGbirswA0LP1wlTM=','iv': 'zbdozs4sjdtIxKmY',
}response = requests.get('', params=params, headers=headers)
ret = response.json().get('data')
b64 = ret.get('data')
# print(b64)# 响应解密
with open("APP_decrypt.js", encoding="utf8") as f:jsCode = f.read()
js_compile = execjs.compile(jsCode)
n = "HVK6TCJKWBLYFT2T"
ret = js_compile.call("i", str(b64), n)
print(ret)
相关文章:
python爬虫:小程序逆向实战教程
根据我之前发表的文章,我们进行延伸实战https://blog.csdn.net/weixin_64809364/article/details/146981598?spm1001.2014.3001.5501 1. 想要爬取什么小程序,我们进行搜索 2. 找到我们vx小程序的文件地址,我们就可以进行破解 破解步骤强看…...
第二十节课:python实例五:身体质量指数BMI计算
python实例五:身体质量指数BMI计算 一、问题分析 BMI计算公式: BMI 体重(kg) / 身高(m)^2国际与国内标准对比 分类国际标准国内标准偏瘦<18.5<18.5正常18.5-2518.5-24偏胖25-3024-28肥胖≥30≥28 二、实现要点 输入处理 # 同时接收身高体重…...
八、重学C++—动态多态(运行期)
上一章节: 七、重学C—静态多态(编译期)-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146999362?spm1001.2014.3001.5502 本章节代码: cpp/dynamicPolymorphic.cpp CuiQingCheng/cppstudy - 码云 - 开源中…...
思维链 Chain-of-Thought(COT)
思维链 Chain-of-Thought(COT):思维链的启蒙 3. 思维链 Chain-of-Thought(COT)存在问题?2. 思维链 Chain-of-Thought(COT)是思路是什么?1. 什么是 思维链 Chain-of-Thoug…...
React框架的Fiber架构
以下是关于 Fiber 架构 的系统梳理: 一、Fiber 架构的出现背景 React 15 及之前的问题 同步递归渲染:虚拟DOM的diff过程不可中断,导致主线程长时间阻塞。掉帧问题:复杂组件树渲染时,用户交互无法及时响应。无法实现增量渲染:无法拆分任务优先级,无法利用浏览器空闲时间。…...
PCI与PCIe接口的通信架构是主从模式吗?
PCI(Peripheral Component Interconnect)总线在通信架构上本质是主从模式,但其具体实现和角色分配在不同版本(如传统PCI与PCI Express)中存在差异。以下是详细分析: 传统PCI总线的主从模式 (1) 基本架构 主…...
【2011】【论文笔记】THz保护文化遗产——
前言 类型 太赫兹 + 文化保护 太赫兹 + 文化保护 太赫兹+文化保护 期刊 I E E E T R A N S A C T I O N S O N T E R A H E R...
状态机思想编程练习
状态机实现LED流水灯 本次实验,我们将利用状态机的思想来进行Verilog编程实现一个LED流水灯,并通过Modelsim来进行模拟仿真,再到DE2-115开发板上进行验证。 首先进行主要代码的编写。 module led (input sys_clk,input sys_…...
三部门新政力推智能家居 居然智家数智化转型迎利好东风
2025年3月,工业和信息化部、教育部、市场监管总局联合印发《轻工业数字化转型实施方案》,明确提出重点培育智能家居、智能穿戴、智能骑行、智慧养老等消费端场景,深化人工智能技术在家电、家具等领域的应用,推动产业链供应链智能化…...
CCF GESP C++编程 七级认证真题 2025年3月
C 七级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 B A B C B B B A D D A C B B D 一、单选题 第 1 题 下列哪个选项是C中的关键字? A. function B. class C. method D. object 第 2 题 下面代码输出的是() int main()…...
【MySQL】navicat16 result字段识别不了
在mysql里面使用result字段 打印出来为空 之后换了个字段命名 使用outcome 成功能打印出来了。。 不知道是不是版本的问题...
【教学类-102-02】自制剪纸图案(留白边、沿线剪)02——Python+PS自动化添加虚线边框
背景需求: 01版本实现了对透明背景png图案边界线的扩展,黑线实线描边 【教学类-102-01】自制剪纸图案(留白边、沿线剪)01-CSDN博客文章浏览阅读974次,点赞15次,收藏7次。【教学类-102-01】自制剪纸图案(留白边、沿线剪)01https://blog.csdn.net/reasonsummer/article…...
CExercise_05_1函数_1.1素数(要对键盘录入的数据做参数校验)
题目: 编写函数实现以下功能: 键盘录入一个正整数,请判断它是否是一个素数,然后控制台输出对应的结果。要对键盘录入的数据做参数校验,素数是一个大于1的自然数,它仅能被1和自身整除。 关键点 分析…...
运算放大器(五)电压比较器
比较器在最常用的简单集成电路中排名第二,仅次于排名第一的运算放大器。 电压比较器是一种用来比较输入信号电压与参考电压大小,并将比较结果以高电平或低电平形式输出的一种信号处理电路,广泛应用于各种非正弦波的产生和变换电路中…...
蓝桥杯_PCF8591
目录 一 前言 二 引言 三 PCF8591介绍 (1)I2C通信 (2)原理图中的8591 四 代码层面 (1)根据题目所给的示范代码,实现ADC 1 为什么需要返回值,同时返回值是unsigned char&#x…...
Windows修改hosts文件让向日癸软件联网
Windows修改hosts文件让向日癸软件联网 前言一、查看向日葵软件使用的网址及IP1.清除dns记录2.打开向日葵软件并将dns记录导出txt 二、修改Windows服务器的hosts文件1.winx选择Windows PowerShell(管理员)2.在Windows PowerShell中输入如下内容:3.在hosts文件最后添…...
[MySQL初阶]MySQL数据类型
MySQL数据类型 1. 数据类型分类2. 数值类型2.1 tinyint类型2.2 bit类型2.3 float类型2.4 decimal类型3. 字符串类型3.1 char3.2 varchar3.3 日期和时间类型3.4 enum和set1. 数据类型分类 数据库中的类型决定了在存储位置中,占据的空间大小以及如何识别的问题。 2. 数值类型 2…...
JS用ES6和ES5分别实现:8字节长整数和字节数组的互转
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
【学Rust写CAD】29 Alpha256结构体(alpha256.rs)
源码 #[derive(Clone, Copy)] pub struct Alpha256(u32);impl Alpha256{#[inline]pub fn from(alpha:u32)->Alpha256{Alpha256(alpha1)}// Calculates 256 - (value * alpha256) / 255 in range [0,256],// for [0,255] value and [0,256] alpha256.#[inline]fn alpha_mul_…...
Titanic - Machine Learning from Disaster
数据集 通过网盘分享的文件: 链接: https://pan.baidu.com/s/17TLeF8PW2GSWTbAIJC69-A?pwd4dak 提取码: 4dak 准备工作 # 导入必要的库 import numpy as np # 用于数值计算(如矩阵运算、数学函数等) import pandas as pd # 用于数据…...
GoFrame框架中Prometheus Metric组件监控的优势与实践
文章摘要 GoFrame 是一款轻量、高效且模块化的 Go 语言全能型框架,在 Go 生态中以其企业级应用能力和简洁设计受到开发者青睐。随着微服务架构的普及,性能监控成为开发中不可或缺的一环,而 Prometheus 凭借其强大的时间序列数据处理能力和灵…...
SQL语言的物联网
以SQL语言的物联网 引言 物联网(IoT,Internet of Things)作为一个新兴的技术领域,正迅速改变着我们的生活方式和工作模式。它通过将各种物体连接到互联网,实现了设备之间的智能通信与数据交换。随着物联网的普及&…...
戴尔笔记本 ubuntu 22.04 开机后进入initramfs界面
问题 在 Ubuntu 22.04 启动时进入 initramfs 界面,并提示 Gave up waiting for root device. Common problems: - Boot args (cat /proc/cmdline)- Check rootdelay (did the system wait long enough?) - Missing modules (cat /proc/modules; ls /dev) ALERT! …...
JavaScript BOM、事件循环
目录 BOM(浏览器对象模型) 一、window 对象 1. 窗口控制 2. 定时器 二、location 对象 三、navigator 对象 四、history 对象 五、screen 对象 六、本地存储 1. localStorage 2. sessionStorage 七、BOM 应用场景 八、总结 JavaScript 执行…...
归并排序算啊模板and三道困难级别的归并力扣算法题--LCR170,493,315
目录 归并排序算法模板: 1.1题目链接:LCR.170.交易逆序对的总数 1.2题目描述: 1.3解法(利用归并排序的过程--分治): 2.1题目链接:315.计算右侧小于当前元素的个数 2.2题目描述: 2.3解法: …...
鸿蒙 harmonyOS:项目实战 :倒计时器
代码: import { promptAction } from kit.ArkUIEntry Component struct Index {State count: number 10 // 初始倒计时秒数State timerId: number -1 // 定时器ID// 开始倒计时startCountdown() {if (this.timerId -1) {this.timerId setInterval(() > {if …...
31--当认证协议开始“选秀“:RADIUS、LDAP、AD与本地认证的C位之争
当认证协议开始"选秀":RADIUS、LDAP、AD与本地认证的C位之争 引言:认证界的"四大天王" 如果把企业网络比作夜店,那么身份认证就是门口的黑衣保安。不同风格的保安队长各有绝活: RADIUS像特种兵出身的安检专家…...
AI 数理逻辑基础之统计学基本原理(上)
目录 文章目录 目录统计学统计学基本概念描述性统计数据可视化图表工具 汇总统计统计数据的分布情况:中位数、众数、平均值统计数据的离散程度:极差、方差、标准差、离散系数 相关分析Pearson 线性关系相关系数Spearman 单调关系相关系数 回归分析回归模…...
C++容器数据类型定义、测试用例
C11 标准库提供了多种容器类型,每种容器定义了多个成员类型(如 value_type、iterator 等),用于与容器交互。以下详细说明各容器的数据类型定义、测试用例及注意事项。 一、顺序容器 1. std::vector<T> 类型定义࿱…...
bun 版本管理工具 bum 安装与使用
在使用 node 的过程中,我们可能会因为版本更新或者不同项目的要求而频繁切换 node 版本,或者是希望使用更简单的方式安装不同版本的 node,这个时候我们一般会用到 nvm 或者类似的工具。 在我尝试使用 bun 的时候,安装前第一个想到…...
AI——使用numpy
文章目录 一、numpy的介绍1、ndarray介绍2、ndarray使用1、ndarray的属性2、ndarray生成数组的方法 3、修改数组的形状4、修改数组的类型5、数组去重 二、数组的运算1、逻辑运算2、通用判断函数3、三元运算符4、统计运算 三、数组间运算四、数学:矩阵 一、numpy的介…...
在线追思:一个虚拟扫墓平台,让思念不受时空限制
在线追思:一个虚拟扫墓平台,让思念不受时空限制 📢 重要分享 今天想与大家分享一个特别的网站——在线追思平台。这是一个让我们能随时随地表达对逝者思念之情的虚拟扫墓平台。 🌟 为什么需要在线追思? 在现代生活的…...
Visual Basic语言的网络协议栈
Visual Basic语言的网络协议栈 引言 在当今信息技术高速发展的时代,网络通信已经成为各类应用程序中不可或缺的部分。无论是网页浏览、文件传输,还是即时通讯,网络协议的有效实现都是保证数据顺利传输和信息安全的重要基础。在这种背景下&a…...
python速通小笔记-------4.Pandas库
1.pandas介绍 1.一维数组的创建 1.字典创建法-----------pd.Series(字典) 使用pd.Series(),参数为已经创建好了的字典 2.数组创建法-----------pd.Series(列表1,index列表2) 2.一维对象的属性 sr.values----------查看所有的vsr.index----…...
P7453 [THUSC 2017] 大魔法师 Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an), b ( b 1 , b 2 , ⋯ , b n ) b(b_1,b_2,\cdots,b_n) b(b1,b2,⋯,bn) 和 c ( c 1 , c 2 , ⋯ , c n ) c(c_1,c_2,\cdots,c_n) c(c1,c2,⋯,cn)&…...
小程序API —— 58 自定义组件 - 创建 - 注册 - 使用组件
目录 1. 基本介绍2. 全局组件3. 页面组件 1. 基本介绍 小程序目前已经支持组件化开发,可以将页面中的功能模块抽取成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护࿱…...
#Liunx内存管理# 在32bit Linux内核中,用户空间和内核空间的比例通常是3:1,可以修改成2:2吗?
在32位Linux内核中,用户空间和内核空间的3:1默认比例可以修改为2:2,但需要权衡实际需求和潜在影响。以下是具体分析: 一、修改可行性 1.技术实现 通过内核启动参数调整虚拟地址空间划分,例如在GRUB配置中添加mem2G参数,…...
经济统计常见的同比与环比是啥意思?同比和环比有什么区别?
在经济统计领域,其实大家都会经常性看到同比还有环比,可人们对此就会觉得有些疑惑。到底是什么意思?这两者之间又有什么样的区别呢?下面就为大家来详细的介绍一下。 同比与环比是用于衡量数据变化趋势的关键指标,可以给…...
前端知识点---本地存储(javascript)
localStorage 是浏览器提供的一个 本地存储 API,可以在用户的浏览器中存储数据,数据不会随页面刷新而丢失。 1. 基本用法 (1) 存储数据(setItem) localStorage.setItem("username", "zhangsan");存储 “use…...
压测工具开发实战篇(二)——构建侧边栏以及设置图标字体
你好,我是安然无虞。 文章目录 构建侧边栏QtAwesome使用调整侧边栏宽度了解: sizePolicy属性伪状态 在阅读本文之前, 有需要的老铁可以先回顾一下上篇文章: 压测工具开发(一)——使用Qt Designer构建简单界面 构建侧边栏 我们要实现类似于下面这样的侧边栏功能: …...
【Java Stream详解】
文章目录 前言一、Stream概述1.1 什么是 Stream?1.2 Stream 和集合的区别 二、Stream的创建方式2.1 基于集合创建2.2 基于数组创建2.3 使用 Stream.generate()2.4 使用 Stream.iterate() 三、Stream常见操作3.1 中间操作(Intermediate)① fil…...
16进制在蓝牙传输中的应用
在蓝牙传输中,16进制(Hexadecimal)是一种常用的数据表示方法。它主要用于描述数据包的内容、地址、命令、参数等信息。以下是16进制在蓝牙传输中的具体应用场景和作用: 1. 数据包的表示 蓝牙通信中,所有数据最终都以二…...
TypeConverter
文章目录 基本描述主要功能接口源码主要实现最佳实践与其他组件的关系常见问题 基本描述 TypeConverter接口是Spring框架中用于在SpEL(Spring表达式语言)中进行类型转换的核心接口,它允许将不同类型的对象相互转换,例如将字符串转…...
优化 Web 性能:压缩 CSS 文件(Unminified CSS)
在 Web 开发中,CSS 文件的大小直接影响页面加载速度和用户体验。Google 的 Lighthouse 工具在性能审计中特别关注“未压缩的 CSS 文件”(Unminified CSS),指出未经过压缩的样式表会增加不必要的字节,拖慢页面渲染。本文…...
每日一个小病毒(C++)EnumChildWindows+shellcode
这里写目录标题 1. `EnumChildWindows` 的基本用法2. 如何利用 `EnumChildWindows` 执行 Shellcode?关键点:完整 Shellcode 执行示例3. 为什么 `EnumChildWindows` 能执行 Shellcode?4. 防御方法5. 总结EnumChildWindows 是 Windows API 中的一个函数,通常用于枚举所有子窗…...
leetcode数组-移除元素
题目 题目链接:https://leetcode.cn/problems/remove-element/ 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为…...
Git 教程:从 0 到 1 全面指南 教程【全文三万字保姆级详细讲解】
目录 什么是 Git ? Git 与 SVN 区别 Git 安装配置 Linux 平台上安装 Centos/RedHat 源码安装 Windows 平台上安装 使用 winget 工具 Mac 平台上安装 Git 配置 用户信息 文本编辑器 差异分析工具 查看配置信息 生成 SSH 密钥(可选…...
在 Android Studio 中运行安卓应用到 MuMu 模拟器
一、准备工作 1、确保 MuMu 模拟器已正确安装并启动 从官网下载安装最新版 MuMu 模拟器。启动后,建议在设置中调整性能参数(如 CPU 核心数和内存分配),以保证流畅运行。 2、配置 Android Studio 环境(按…...
stable diffusion部署ubuntu
stable-diffusion webui: https://github.com/AUTOMATIC1111/stable-diffusion-webui python3.10 -m venv venv(3.11的下torch会慢得要死) source venv/bin/activate 下载checkpoint模型放入clip_version"/home/chen/软件/stable-diffusion-webu…...
《概率论与数理统计》期末复习笔记_下
目录 第4章 随机变量的数字特征 4.1 数学期望 4.2 方差 4.3 常见分布的期望与方差 4.4 协方差与相关系教 第5章 大数定律和中心极限定理 5.1 大数定律 5.2 中心极限定理 第6章 样本与抽样分布 6.1 数理统汁的基本概念 6.2 抽样分布 6.2.1 卡方分布 6.2.2 t分布 6.…...