获取微信小程序的源码

获取微信小程序源码 - 图1

方法一:直接抓包法

小程序一般会先向微信服务器上下载小程序的资源,所以抓包一定情况下可以看到

新版的微信小程序采用了zstd压缩,所以下载后需要先解压,老版本没压缩可以直接下载源码,这是一个需要注意的地方

前提

手机上无该小程序的缓存文件,如果有,进行如下操作
获取微信小程序源码 - 图2

操作步骤

1、使用fiddler抓包,获取小程序资源下载链接

PS:burp也可以,只是感觉fiddler抓手机包更快

获取微信小程序源码 - 图3
2、下载小程序
获取微信小程序源码 - 图4
3、zstd解压

  1. zstd -d xxx.zstd

获取微信小程序源码 - 图5
4、解压后添加后缀.wxapkg,然后进行反编译,此处以[wxappUnpacker](#%E5%85%B6%E4%BB%96)为例
获取微信小程序源码 - 图6
获取微信小程序源码 - 图7

结果

反编译后的目录结果
获取微信小程序源码 - 图8
反编译后的内容
获取微信小程序源码 - 图9
获取微信小程序源码 - 图10


方法二:本地缓存文件读取法

网上基本都用的这个办法,感觉不如上面那个好用,还麻烦!!!

这是2019年记录的,可能现在存在一些误差,有问题及时联系我

前提

  • 手机root
  • 手机已经访问过小程序,在系统中存在缓存
  • 安装RE文件管理器

    操作步骤

    1、首先访问如下目录/data/data/com.tencent.mm/MicroMsg/,找到wxapkg文件
    获取微信小程序源码 - 图11
    2、拖到电脑(此处我用的adb,也可以使用模拟器的共享文件夹等)
    1. ## adb命令
    2. adb pull /data/data/com.tencent.mm/MicroMsg/d32f736510b7c9582b5fc1aa3673b2bb/appbrand/pkg/debug_826840826_2_-1071461312
    获取微信小程序源码 - 图12
    3、使用[WxApkgUnpacker.exe](https://raw.githubusercontent.com/damit5/GraphBed/master/file/WxApkgUnpacker.exe)反编译wxapkg获取源文件
    获取微信小程序源码 - 图13

    结果

    获取微信小程序源码 - 图14

其他

有些工具下载地址挂了,可以多在github上找找,这里提供一些本地下载吧

获取微信小程序源码 - 图15

调试过程

下载安装后打开,导入反编译的源码
获取微信小程序源码 - 图16
点击编译(不编译看着也比较舒服吧哈哈)
获取微信小程序源码 - 图17
编译完成后就可以自己调试了

如果代码存在混淆等情况,可能编译不成功,不过也不太影响我们测试,因为我们也主要是分析各个接口的东西;如果有加密什么的,能调试就很方便

放一张别人编译成功的图吧
获取微信小程序源码 - 图18

参考

  • 小程序渗透测试-前端打包调试解密

    获取支付宝小程序的源码

    和微信小程序差不多,只是路径不一样,支付宝小程序的路径为
    1. /data/data/com.eg.android.AlipayGphone/files/nebulaInstallApps
    另外具体目录名为小程序tinyAppId值,其中的tar包即为源码文件。tar包未加密,adb pull出来之后直接解压即可

    JS美化

    源码基本都是前后端分离的前端,所以基本都是js、html什么的,直接看比较费眼睛,结合一下效果挺好。
  1. 用微信开发者工具调试,会自动高亮,不过混淆的也不好看
  2. 搜索引擎搜索 js在线美化