部分微信小程序会有很严重的风控,在使用抓包工具时,发现无法抓取到任何有用的包,那就直接进手机的文件管理,找到手机本地产生的包
环境:
微信开发者工具
wxappUnpacker
node环境
adb
编译阶段:
1.首先找到小程序的安装包,可以找个手机,点开小程序后,找到手机文件目录, 一般是这样的目录。
/data/data/com.tencent.mm/MicromMsg/c6dxxxxxxxxxxxxx/appbrand/pkg/*.wxapkg
2.把这些包从手机里导出来,进行解析,用adb进行导出, 如果不知道哪个文件可以批量导出
adb pull /data/data/com.tencent.mm/MicroMsg/*******/appbrand/pkg/
3.· 可能会报权限问题: adb root && adb remount 增加权限,这时候就会在当前目录生成一个pkg文件,里面放的就是wxapkg文件。
4.· 使用wxappUnpacker把刚才导出来的两个wxapkg进行解压。
node wuWxapkg.js ../mryx/pkg/pkg/_1123949441_403.wxapkg
5.· 使用wxappUnpacker把刚才导出来的两个wxapkg进行解压。
node wuWxapkg.js ../mryx/pkg/pkg/_1123949441_403.wxapkg
6.解压到第一个包的时候报了一个如下错误:
报错内容:这是一个pkg的子文件,并不是一个完整的小程序(无视)
7.解析下一个 node wuWxapkg.js ../mryx/pkg/pkg/_656941515_671.wxapkg
显示第二个wxapk包编译完成
7.编译成功后,会把解析的包生成一个项目文件,这个项目文件会放在wxapkg同目录下。
项目运行:
项目目录,就是wxapk 解压过来的文件夹
运行起来发现 plugin/wx2b03c6e691cd7370/pages/live-player-plugin.json: [“backgroundColor”]: “black” is not hexColor
进到 plugin/wx2b03c6e691cd7370/pages/live-player-plugin.json,找到报错行,百度搜了一下报错,发现最新版的微信开发者工具颜色只支持16进制的
将
改成
然后command+s (修改完保存自动运行) , windows是ctrl+s, 运行完以后发现还有两个这种错误,继续修改
以 ‘__’ 为开头和结尾的目录为保留目录。plugin 目录下的所有文件将会被忽略。 这个可以先不管, 先运行其他的。
颜色报错修改完以后,发现/pages/index/components/cell-lists/search-add/search-add.wxml下还有报错
size="{{width:120,height:32}}" 这个地方有问题,定位不到具体位置,把大括号去掉,就可以继续往下走了, 工具是一步步往下执行,那里有报错就会卡住退出
执行到 pulgin-private目录的时候,发现文件一直报错,这里就是坑了 (修改了各种文件,折腾了一个下午才弄明白), 原来是wxappUnpacker 解压出来的文件夹 带了个 ":” 导致小程序一直读不到文件,无法往下继续执行,修改文件名称
把pulgin-private: 修改为pulgin-private,然后继续执行, 然后又遇到了这类的报错: error: https://dc-eventlog.missfresh.cn 不在以下 request 合法域名列表中,请参考文档, 大概意思就是微信开发者工具后台需要给自己设计一些域名,但是可以通过设置不验证域名: 右上角>详情>本地设置>不校验合法域名、web-view(业务域名)
继续往下运行
基本已经运行整个项目了, 请求也已经开始发送出去了,但是页面还需要加个开通小程序的位置信息, 需要在app.json里增加
"permission":{
"scope.userLocation":{
"desc":"请点击确定"
}
},
解压出来的小程序代码就可以进行使用了
调式:
输出: