以EMS中国邮政速递物流小程序为例介绍下带分包小程序反编译操作流程
需要安装以下两个软件
1.使用自己手机上的微信打开"EMS中国邮政速递物流"小程序,可以添加到"我的小程序"
2.打开模拟器的微信并登录
3.在模拟器微信的下拉小程序最近使用历史中打开"EMS中国邮政速递物流",如果历史记录中没有就在我的小程序中找一找
4.打开小程序等待加载之后就可以去找源码包了
5.打开RE文件管理器,进入到以下路径查找源码包(可以根据下载时间区分出你想要的源码包)
/data/data/com.tencent.mm/MicroMsg/4c8188dbf07eec893d0ac90974657aeb/appbrand/pkg
6.拷贝小程序包至模拟器共享文件夹
获取完毕。
这个小程序分包不多,只有一个。
1.复制小程序包文件夹到工具根目录,cd 进入工具根目录
如果没有安装过npm包就先执行安装
npm install
2.解主包
./bingo.sh ems/_1968016507_142.wxapkg
可以看到命令行输出如下提示
node /Users/xg/project/wxappUnpacker/wuWxapkg.js
Unpack file ems/_1968016507_142.wxapkg...
Header info:
firstMark: 0xbe
unknownInfo: 0
infoListLength: 7589
dataLength: 2424590
lastMark: 0xed
File list info:
fileCount: 220
Saving files...
Unpack done.
Split app-service.js and make up configs & wxss & wxml & wxs...
deal config ok
deal js ok
deal wxss.js ok
deal css ok
=======================================================
这个小程序采用了分包
子包个数为: 1
=======================================================
Decompile ./components/Dialog/dialog.wxml...
Decompile success!
Decompile ./components/address-card/address-card.wxml...
Decompile success!
Decompile ./components/address-view/address-view.wxml...
Decompile success!
Decompile ./components/agreeMent/agreeMent.wxml...
Decompile success!
Decompile ./components/appointment/appointment.wxml...
Decompile success!
Decompile ./components/childaddress-card/childaddress-card.wxml...
Decompile success!
Decompile ./components/cityView/cityView.wxml...
Decompile success!
Decompile ./components/cropper/cropper.wxml...
Decompile success!
Decompile ./components/pasteboard/pasteboard.wxml...
Decompile success!
Decompile ./components/realInfo-view/realInfo-view.wxml...
Decompile success!
Decompile ./components/show-model/show-model.wxml...
Decompile success!
Decompile ./components/show-protocol/show-protocol.wxml...
Decompile success!
Decompile ./components/tip/tip.wxml...
Decompile success!
Decompile ./pages/address/address.wxml...
Decompile success!
Decompile ./pages/batchGoodsType/batchGoodsType.wxml...
Decompile success!
Decompile ./pages/batchRecognition/batchRecognition.wxml...
Decompile success!
Decompile ./pages/batchRecognitionSuccess/batchRecognitionSuccess.wxml...
Decompile success!
Decompile ./pages/batchSend/batchSend.wxml...
Decompile success!
Decompile ./pages/batchSendList/batchSendList.wxml...
Decompile success!
Decompile ./pages/batchSendSuccess/batchSendSuccess.wxml...
Decompile success!
Decompile ./pages/dropin_order/order.wxml...
Decompile success!
Decompile ./pages/emsCropper/emsCropper.wxml...
Decompile success!
Decompile ./pages/estimatedCost/estimatedCost.wxml...
Decompile success!
Decompile ./pages/evaluate/evaluate.wxml...
Decompile success!
Decompile ./pages/follow/follow.wxml...
Decompile success!
Decompile ./pages/freightTime/freightTime.wxml...
Decompile success!
Decompile ./pages/home/home.wxml...
Decompile success!
Decompile ./pages/inviteFriends/inviteFriends.wxml...
Decompile success!
Decompile ./pages/inviteOrder/inviteOrder.wxml...
Decompile success!
Decompile ./pages/main/main.wxml...
Decompile success!
Decompile ./pages/message/message.wxml...
Decompile success!
Decompile ./pages/myMessage/myMessage.wxml...
Decompile success!
Decompile ./pages/newOrEditAddress/newOrEditAddress.wxml...
Decompile success!
Decompile ./pages/orderDetails/orderDetails.wxml...
Decompile success!
Decompile ./pages/orderDetailsByCancel/orderDetailsByCancel.wxml...
Decompile success!
Decompile ./pages/place_order/order.wxml...
Decompile success!
Decompile ./pages/printOrders/printOrders.wxml...
Decompile success!
Decompile ./pages/queryMail/queryMail.wxml...
Decompile success!
Decompile ./pages/queryResult/queryResult.wxml...
Decompile success!
Decompile ./pages/returnGoods/returnGoods.wxml...
Decompile success!
Decompile ./pages/wxLogin/wxLogin.wxml...
Decompile success!
Guess wxss(first turn)...
splitJs: /Users/xg/project/wxappUnpacker/ems/_1968016507_142/app-service.js
@babel/runtime/helpers/arrayWithoutHoles.js
@babel/runtime/helpers/asyncToGenerator.js
@babel/runtime/helpers/defineProperty.js
@babel/runtime/helpers/interopRequireDefault.js
@babel/runtime/helpers/iterableToArray.js
@babel/runtime/helpers/nonIterableSpread.js
@babel/runtime/helpers/toConsumableArray.js
@babel/runtime/regenerator.js
pages/address/city-data.min.js
utils/barIndex.js
utils/barcode.js
utils/base64.js
utils/bluetooth.js
utils/common.js
utils/config.js
utils/internationalCode/hkList.js
utils/internationalCode/internationalCode.js
utils/login.js
utils/md5.js
utils/qqmap-wx-jssdk.min.js
utils/qrcode.js
utils/requestApi.js
utils/urlEncodeGBK.min.js
app.js
components/Dialog/dialog.js
components/address-card/address-card.js
components/address-view/address-view.js
components/agreeMent/agreeMent.js
components/appointment/appointment.js
components/childaddress-card/childaddress-card.js
components/cityView/cityView.js
components/cropper/cropper.js
components/pasteboard/pasteboard.js
components/realInfo-view/realInfo-view.js
components/show-model/show-model.js
components/show-protocol/show-protocol.js
components/tip/tip.js
pages/main/main.js
pages/place_order/order.js
pages/dropin_order/order.js
pages/home/home.js
pages/address/address.js
pages/newOrEditAddress/newOrEditAddress.js
pages/follow/follow.js
pages/printOrders/printOrders.js
pages/batchSend/batchSend.js
pages/batchSendSuccess/batchSendSuccess.js
pages/emsCropper/emsCropper.js
pages/message/message.js
pages/estimatedCost/estimatedCost.js
pages/freightTime/freightTime.js
pages/queryMail/queryMail.js
pages/wxLogin/wxLogin.js
pages/inviteFriends/inviteFriends.js
pages/inviteOrder/inviteOrder.js
pages/myMessage/myMessage.js
pages/orderDetails/orderDetails.js
pages/batchRecognition/batchRecognition.js
pages/batchRecognitionSuccess/batchRecognitionSuccess.js
pages/evaluate/evaluate.js
pages/batchGoodsType/batchGoodsType.js
pages/orderDetailsByCancel/orderDetailsByCancel.js
pages/batchSendList/batchSendList.js
pages/queryResult/queryResult.js
pages/returnGoods/returnGoods.js
Splitting "/Users/xg/project/wxappUnpacker/ems/_1968016507_142/app-service.js" done.
Import count info: {"./bin/weui.wxss":3}
Guess wxss(first turn) done.
Generate wxss(second turn)...
Generate wxss(second turn) done.
Save wxss...
saveDir: /Users/xg/project/wxappUnpacker/ems/_1968016507_142
Split and make up done.
Delete files...
Deleted.
File done.
Total use: 4801.182ms
3.解分包
命令格式: ./bingo.sh 分包.wxapkg -s=主包目录
./bingo.sh ems/_-844810613_142.wxapkg -s=ems/_1968016507_142
执行结果
node /Users/xg/project/wxappUnpacker/wuWxapkg.js
Unpack file ems/_-844810613_142.wxapkg...
Header info:
firstMark: 0xbe
unknownInfo: 0
infoListLength: 2065
dataLength: 518422
lastMark: 0xed
File list info:
fileCount: 38
Saving files...
Unpack done.
now dir: /Users/xg/project/wxappUnpacker/ems/_-844810613_142
param of mainDir: ems/_1968016507_142
sub package word dir: /Users/xg/project/wxappUnpacker/ems/_-844810613_142/packageA
real mainDir: /Users/xg/project/wxappUnpacker/ems/_-844810613_142/ems/_1968016507_142
Split app-service.js and make up configs & wxss & wxml & wxs...
deal js ok
deal sub html ok
splitJs: /Users/xg/project/wxappUnpacker/ems/_-844810613_142/packageA/app-service.js
packageA/components/advertBanner/advertBanner.js
packageA/pages/advertLoadHtl/advertLoadHtl.js
packageA/pages/internationalOrder/baojia/baojia.js
packageA/pages/internationalOrder/goodsName/goodsName.js
packageA/pages/printer/printer.js
packageA/pages/explain/explain.js
packageA/pages/invoice/invoice.js
packageA/pages/certification/certification.js
packageA/pages/member/member.js
packageA/pages/newAddAddress/newAddAddress.js
packageA/pages/goodsType/goodsType.js
packageA/pages/orderDoorResult/orderDoorResult.js
packageA/pages/orderSelfResult/orderSelfResult.js
packageA/pages/internationalAddress/receive/receive.js
packageA/pages/internationalList/internationalList.js
packageA/pages/interOrderDetails/interOrderDetails.js
packageA/pages/internationalOrder/haiguan/haiguan.js
packageA/pages/internationalOrder/internationalOrder.js
packageA/pages/internationalSuccess/internationalSuccess.js
packageA/pages/internationalOrder/addHaiguanContent/addHaiguanContent.js
packageA/pages/stayInviteOrder/stayInviteOrder.js
packageA/pages/pickUpComplaint/pickUpComplaint.js
packageA/pages/complaintSuccess/complaintSuccess.js
packageA/pages/complaintDetail/complaintDetail.js
packageA/pages/entertainment/entertainment.js
Splitting "/Users/xg/project/wxappUnpacker/ems/_-844810613_142/packageA/app-service.js" done.
Decompile ./packageA/components/advertBanner/advertBanner.wxml...
Decompile success!
Decompile ./packageA/pages/advertLoadHtl/advertLoadHtl.wxml...
Decompile success!
Decompile ./packageA/pages/certification/certification.wxml...
Decompile success!
Decompile ./packageA/pages/complaintDetail/complaintDetail.wxml...
Decompile success!
Decompile ./packageA/pages/complaintSuccess/complaintSuccess.wxml...
Decompile success!
Decompile ./packageA/pages/entertainment/entertainment.wxml...
Decompile success!
Decompile ./packageA/pages/explain/explain.wxml...
Decompile success!
Decompile ./packageA/pages/goodsType/goodsType.wxml...
Decompile success!
Decompile ./packageA/pages/interOrderDetails/interOrderDetails.wxml...
Decompile success!
Decompile ./packageA/pages/internationalAddress/receive/receive.wxml...
Decompile success!
Decompile ./packageA/pages/internationalList/internationalList.wxml...
Decompile success!
Decompile ./packageA/pages/internationalOrder/addHaiguanContent/addHaiguanContent.wxml...
Decompile success!
Decompile ./packageA/pages/internationalOrder/baojia/baojia.wxml...
Decompile success!
Decompile ./packageA/pages/internationalOrder/goodsName/goodsName.wxml...
Decompile success!
Decompile ./packageA/pages/internationalOrder/haiguan/haiguan.wxml...
Decompile success!
Decompile ./packageA/pages/internationalOrder/internationalOrder.wxml...
Decompile success!
Decompile ./packageA/pages/internationalSuccess/internationalSuccess.wxml...
Decompile success!
Decompile ./packageA/pages/invoice/invoice.wxml...
Decompile success!
Decompile ./packageA/pages/member/member.wxml...
Decompile success!
Decompile ./packageA/pages/newAddAddress/newAddAddress.wxml...
Decompile success!
Decompile ./packageA/pages/orderDoorResult/orderDoorResult.wxml...
Decompile success!
Decompile ./packageA/pages/orderSelfResult/orderSelfResult.wxml...
Decompile success!
Decompile ./packageA/pages/pickUpComplaint/pickUpComplaint.wxml...
Decompile success!
Decompile ./packageA/pages/printer/printer.wxml...
Decompile success!
Decompile ./packageA/pages/stayInviteOrder/stayInviteOrder.wxml...
Decompile success!
Guess wxss(first turn)...
Import count info: {}
Guess wxss(first turn) done.
Generate wxss(second turn)...
Generate wxss(second turn) done.
Save wxss...
saveDir: /Users/xg/project/wxappUnpacker/ems/_-844810613_142/ems/_1968016507_142
4.将分包内容拷贝至主包相应目录
打开微信开发者工具,导入项目
注意在项目设置中勾选不校验合法域名
为小程序逆向而生的小程序