PC微信小程序wxapkg解密项目教程

PC微信小程序wxapkg解密项目教程

pc_wxapkg_decrypt_pythonPC微信小程序 wxapkg 解密项目地址:https://gitcode.com/gh_mirrors/pc/pc_wxapkg_decrypt_python

1. 项目的目录结构及介绍

pc_wxapkg_decrypt_python/
├── main.py
├── README.md
└── requirements.txt
  • main.py: 项目的启动文件,包含解密wxapkg文件的主要逻辑。
  • README.md: 项目说明文档,包含项目的基本介绍和使用方法。
  • requirements.txt: 项目依赖文件,列出了运行该项目所需的Python包。

2. 项目的启动文件介绍

main.py

main.py 是该项目的启动文件,主要负责解密wxapkg文件。以下是该文件的主要功能和代码结构:

import argparse
import os
from Crypto.Hash import SHA1
from Crypto.Protocol.KDF import PBKDF2
from Crypto.Cipher import AES

# 常量定义
WXAPKG_FLAG_LEN = 6
WXAPKG_FLAG = 'V1MMWX'

# 解析命令行参数
parser = argparse.ArgumentParser()
parser.add_argument('--wxid', required=True)
parser.add_argument('--file', required=True)
parser.add_argument('--output', required=True)
args = parser.parse_args()

# 生成AES密钥
key = PBKDF2(args.wxid.encode('utf-8'), args.salt.encode('utf-8'), 32, count=1000, hmac_hash_module=SHA1)

# 读取加密的内容
if not os.path.exists(args.file):
    raise Exception('文件不存在')
with open(args.file, mode='rb') as f:
    dataByte = f.read()
if dataByte[0:WXAPKG_FLAG_LEN].decode() == WXAPKG_FLAG:
    raise Exception('该文件无需解密 或者不是微信小程序wxapkg加密包')

# 初始化密钥
cipher = AES.new(key, AES.MODE_CBC, args.iv.encode('utf-8'))

# 解密头部1024个字节
originData = cipher.decrypt(dataByte[WXAPKG_FLAG_LEN:1024 + WXAPKG_FLAG_LEN])

# 初始化xor密钥 解密剩余字节
xorKey = 0x66
if len(args.wxid) >= 2:
    xorKey = ord(args.wxid[len(args.wxid) - 2])
afData = dataByte[1024 + WXAPKG_FLAG_LEN:]
out = bytearray()
for i in range(len(afData)):
    out.append(afData[i] ^ xorKey)
originData = originData[0:1023] + out

# 写入解密后的文件
with open(args.output, mode='wb') as f:
    f.write(originData)

3. 项目的配置文件介绍

requirements.txt

requirements.txt 文件列出了运行该项目所需的Python包,可以通过以下命令安装这些依赖:

pip install -r requirements.txt

文件内容如下:

pycryptodome==3.10.1
  • pycryptodome: 用于加密和解密操作的Python库。

以上是PC微信小程序wxapkg解密项目的详细教程,希望对你有所帮助。

pc_wxapkg_decrypt_pythonPC微信小程序 wxapkg 解密项目地址:https://gitcode.com/gh_mirrors/pc/pc_wxapkg_decrypt_python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢瑜晶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值