赞
踩
1、反编译工具:wecgatMiniAppReverse.zip(链接:微信小程序-反编译工具 (0积分下载))
ps:(编译不成功,可以使用此工具:unveril2.0反编译工具(0积分下载))
2、安装 nodejs并配置全局变量
找稳定版下载(我的环境是 win10):
1、登录PC端微信,找到目标小程序打开后可关闭,目的是为了小程序源码包下载缓存至本地:
2、点击打开文件夹:
3、点击进来后,有对应的小程序缓存,类似于 “wxd418ee346d79d382”就是打开过的小程序的id。按照路径找到加密过的文件 "__APP__.wxapkg":
4、解密该文件
4.1、首先 cmd 命令进入解密工具文件夹
4.2、为了方便,把需要解密的文件复制到同一目录下 “wxd418ee346d79d382”
4.3、输入命令格式:pc_wxapkg_decrypt.exe -wxid 微信小程序id -in 要解密的wxapkg路径
本示例命令:pc_wxapkg_decrypt.exe -wxid wxd418ee346d79d382 -in wxd418ee346d79d382\450\__APP__.wxapkg
4.4、提示解密成功,得到 “”dec.wxapkg“”
注意:路径中不要带空格,比如 “Program File”
1、cmd命令进入 “”wxappUnpacker-master“”路径
2、执行命令,反编译解密的文件 “dec.wxapkg”:node wuWxapkg.js ..\decrypt\dec.wxapkg
3、 命令结束后,会在 “”../decrypt “” 目录下生成一个 “dec” 文件夹,里面就是反编译小程序的源码。ps:(复杂的小程序,不会100%完全编译出来)
4、反编译结果如下,用微信开发者工具打开。
点击确定,就可以愉(苦)快(逼)的逆向了。
1、根据接口的特征搜索,比如 headers、post body 等等。
2、可以直接一套组合拳:“AES(decrypt\encrypt)、MD5、Base64”等等 查看此处
3、若是对小程序开发流程很熟悉的人,可以根据代码入口查看。
检索结果,非常熟悉的加、解密方法。
1、首先需要找到 秘钥(u)、偏移量(l)。按住ctrl键,找到定义位置。
注意:是用pkcs7方式补齐数据的。
- import json
-
- from Crypto.Cipher import AES
- import base64
-
- def pkcs7_unpadding(txt):
- padding_size = txt[-1]
- return txt[:-padding_size]
-
- def data_decrypt2(data):
- secret = b"f13df6c54e8efdfe" # 秘钥
- iv = b"a3648c7c1ef3e9fe" # 偏移量
- iv1 = bytes(list(bytes(iv))) # 偏移量
- aes = AES.new(secret, mode=AES.MODE_CBC, iv=iv1)
- b_data = base64.b64decode(data)
- meg = aes.decrypt(b_data)
- # print(meg)
- b = pkcs7_unpadding(meg)
- # print(b.decode())
- print(json.loads(b))
-
- txt1 = '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'
-
- data_decrypt2(txt1)
得到的结果:
还有headers,code字段值需要加密带入访问返回结果。
需要解密的文本:
ibdHN7yyu2DjOMJoVeXOmBtW9sb2DL/eiptsdkVPQ0OHJWrF2FGw4aqWBZQ3+JGAN7+xbsrtNnAckuHksLS6fY0hf+1xwx2+FRN5dWXB4vTM3gMNiFy0WWTlzsqp3jG94dZaH2p6MQsJE3saUp2TrnqlApXj+rdeMkSVlc7o2Ys=
解密结果:
知道了code加密数据结构了,那就拼接好数据后,再执行加密方法即可。
加密代码如下:
- from Crypto.Cipher import AES
- from Crypto.Util.Padding import pad
- import base64
-
- key = 'f13df6c54e8efdfe' # 秘钥
- iv = "a3648c7c1ef3e9fe" # 偏移量
-
-
- # 补足字节方法 --- 选择pkcs7补全
- def pad2(value):
- # 选择pkcs7补全
- pad_pkcs7 = pad(value.encode('utf-8'), AES.block_size, style='pkcs7') # 选择pkcs7补全
- return pad_pkcs7
-
-
- # AES加密
- def AES_aescode(data):
- data = pad2(data) # 字节补全
- AES_obj = AES.new(key.encode("utf-8"), AES.MODE_CBC, iv.encode("utf-8"))
- AES_en_str = AES_obj.encrypt(data)
- AES_en_str = base64.b64encode(AES_en_str)
- AES_en_str = AES_en_str.decode("utf-8")
- return AES_en_str
-
- data = '{"app_type":"Wechat","version":"3.0","time":1702284047422,"rand":15957198,"openid":"oYQX40ICMDZKf18ywpEgiXFKsHy4"}'
- a = AES_aescode(data)
- print(f"加密为:{a}")
得到的结果为:
加密为:ibdHN7yyu2DjOMJoVeXOmBtW9sb2DL/eiptsdkVPQ0OHJWrF2FGw4aqWBZQ3+JGAN7+xbsrtNnAckuHksLS6fY0hf+1xwx2+FRN5dWXB4vTM3gMNiFy0WWTlzsqp3jG94dZaH2p6MQsJE3saUp2TrnqlApXj+rdeMkSVlc7o2Ys=
至此,完结!!!!
参考:https://juejin.cn/post/7202583557750603833
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。