dragonwong / blog

a blog based on github page
dragonwong.github.io/blog/
9 stars 4 forks source link

小程序抓包 #34

Open dragonwong opened 4 years ago

dragonwong commented 4 years ago

主要分为两步:

  1. 从手机获取源码;
  2. 借助工具破解源码。

获取源码

首先需要一台root之后的安卓手机,手机登录微信,并启动目标小程序。

电脑安装 adb:

brew install --cask android-platform-tools

手机电脑连线,电脑执行 adb 命令:

# 启动
adb shell
# 获取根权限
su
# 进入小程序源码目录,检查是否有小程序包:如果 ls 的话可以看到很多 wxapkg 的文件
cd /data/data/com.tencent.mm/MicroMsg/{用户ID}/appbrand/pkg
# 防止权限问题无法将代码拷出,先拷到 sd 卡目录
cp {小程序名}.wxapkg /sdcard/
# 另开 bash,从手机 sd 卡目录把文件拷到电脑当前目录
adb pull /sdcard/{小程序名}.wxapkg

模拟器行不行?

没有安卓手机,用模拟器也行。我 Mac 电脑装的网易 MuMu,亲测可行:

adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
emulator-5554   offline

从电脑版微信获取小程序源码行不行?

亲测不行。现在电脑版微信也能跑小程序了,源码会下载到:/Users/{username}/Library/Group Containers/5A4RE8SF68.com.tencent.xinWeChat/Library/Caches/xinWeChat/{userhash}/WeApp/LocalCache/release 目录下,但是这个源码在后续破解流程中会导致报错:Error: Magic number is not correct!

破解源码

克隆项目 wxappUnpacker 至本地,安装依赖,执行命令:

node wuWxapkg.js {源码路径}

即可获得破解后的代码(可能会报错,但是无影响)。

更新(2022-12-28)github 仓库已经和谐了,还好我们还有 npm:https://www.npmjs.com/package/wxapp-unpacker

参考