对于小程序反编译想必大家都不陌生
并且也有许多大神给出了自己的方法
具体可以参考下这篇
可能是我本人技术的问题,很多方法我都没有成功
并且大部分都是在命令行进行,很不方便
所以就重新修改了一下,并进行封装
效果图
?
贴上核心代码
??key = PBKDF2(
wxid.encode("utf-8"),
salt.encode("utf-8"),
32,
count=1000,
hmac_hash_module=SHA1,
)
# 生成key
# 读取加密的内容
with open(file, mode="rb") as f:
dataByte = f.read()
# 初始化密钥
cipher = AES.new(key, AES.MODE_CBC, iv.encode("utf-8"))
# 解密头部1024个字节
originData = cipher.decrypt(dataByte[WXAPKG_FLAG_LEN : 1024 + WXAPKG_FLAG_LEN])
# 初始化xor密钥, 解密剩余字节
xorKey = 0x66
if len(wxid) >= 2:
xorKey = ord(wxid[len(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(put, mode="wb") as f:
f.write(originData)
|