微信小程序编译包的获取与解压——在手机中获取小程序编译包wxapkg
准备工作:
微信关注需要下载编译包的小程序,然后点进去看一下,微信就会自动下载相应的编译包到手机上了。
获取小程序编译包:
据说root手机可以直接在手机的文件管理中查找wxapkg文件,自己尝试了下,魅族手机已root , 无法通过搜索查找到,对应的文件夹路径也找不到相关文件,所以这里就采用比较通用的方法来获取了。
大部分智能手机都有备份功能,这样就可以在手机重装系统或恢复出厂设置之后快速恢复手机应用和数据。对的,就是这个手机备份功能,当你对一个应用进行备份的时候,除了应用本身,应用的数据也会直接被备份下来。微信也不例外,当你对微信进行备份的时候,微信上访问过的小程序的编译包也被备份下来了,那么下边就详细的介绍下如何去获取这个编译包。
1. 备份微信应用:
为便于查找,最好单独备份微信,以安卓手机为例,大致流程如下:设置——存储与备份——备份手机数据——添加备份——应用——选择微信,然后点击确定,等待备份完成即可。
2. 查找备份文件:
文件管理——全部文件——backup:
点击最近时间的点进去,在App文件家中找到 com.tencent.mm.zip 就是微信备份文件了(我这个是全量备份包,如果只是备份微信的话应该只有这一个,而且要注意不同手机目录结构会不同)。
找到这个文件夹了,直接通过qq或微信分享到电脑上就好了。
3. 查找小程序编译包文件:
解压备份文件
点击MicroMsg,找到文件名为串码格式的文件夹,如下,需要点进去确认下:
进入appbrand:
进入pkg:
额,小程序编译包有点多啊,直接看这个文件名是无法区分出来是哪个小程序的(备份文件中应该有其他类似字典类的数据文件可以找出对应的小程序,但是这个就比较麻烦了)。
不过还是有办法来判断的,因为这个编译包文件可以右键编辑查看源代码,虽然编码调了好几种都没能把中文调出来,但是页面目录可以看到了,这就比较好判断哪个是我们要找的小程序编译包了。
为了减少麻烦,可以先把微信缓存清理下,把不需要的小程序都删掉,只保留需要获取编译包的那一个,估计就不会这么痛苦了。
4. 判断选择小程序:
经验证,debug开头的编译包是开发版的。
1)查找appid
小程序编译包中有appid的,如果是自己的小程序,可以直接搜索appid来判断。编译包文件只能通过notepad++打开了,其他开发工具都无法打开,记事本打开直接卡死。
notepad++打开之后直接搜索查看是否存在自己小程序是appid串码就好了。
2)查看源码
如果不是自己的,那么就只有查看源码页面结构及业务逻辑来判断了,或者也可以直接使用工具进行反编译(涉及到其他工具的使用,后边会单独写)。
用notepad++打开之后有部分还是乱码的,而且格式比较乱,可以拷出来放到编辑器中格式化。
格式化后代码如下:
虽然部分内容乱码,格式还是比较乱,但是已经可以判断出来这里的部分是小程序的app.json配置文件了,如果对小程序比较熟悉,应该可以根据配置文件内容来判断是不是想要的哪个小程序了。
再往下看看,页面的js文件内容都能看的到了。
PS:
1. 如果是获取别人的小程序,不清楚小程序结构,那么最好是把微信中其他的小程序都删掉,只保留要查找的小程序进行访问后对微信单独备份,这样备份之后的文件中的编译包就只有需要的这个小程序了。
2. root手机可以先尝试在文件管理中搜索wx,看能不能找到,也可以通过以下路径查找——其中其中{User}
为当前用户的用户名,类似于 2bc**************b65
。
/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
3. 获取到了小程序编译包,可以直接使用工具进行反编译,也就是说,我们可以直接复用别人的小程序了,后边会单独写文说明如何进行小程序编译包的反编译。
个人原创博客,转载请注明来源地址:https://www.cnblogs.com/xyyt/p/9523902.html
微信小程序编译包的获取与解压——在手机中获取小程序编译包wxapkg的更多相关文章
- (转)Unity中使用C#实现Zip包的压缩与解压
使用SharpZipLib库,下载地址为:http://icsharpcode.github.io/SharpZipLib/ /************************************ ...
- Jenkins通过FTP上传站点太多文件导致太慢且不稳定,切换为压包上传再解压的思路(asp.net)
在本地先处理好要上传的站点文件之后,可能会因为一些网页切图导致ftp上传不稳定,中断,或者文件占用的问题. 那么换了一种实现思路,要借助jenkins的工具jenkins-cli.jar. 解决思路: ...
- PHP获取http头信息和CI中获取HTTP头信息的方法
CI中获取HTTP头信息的方法: $this->input->request_headers() 在不支持apache_request_headers()的非Apache环境非常有用.返回 ...
- Linux下解包/打包,压缩/解压命令
.tar 解包:tar xvf FileName.tar 打包:tar cvf fileName.tar DirName tar.gz和.tgz 解压:tar zxvf FileName.tar.zi ...
- 【转】【Linux】Linux 下zip包的压缩与解压
linux zip 命令详解 功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串& ...
- Android手机中获取手机号码和运营商信息
代码如下: package com.pei.activity; import android.app.Activity; import android.os.Bundle; import androi ...
- JS/jquery获取iframe内部元素和ifame中获取外部元素精华
1.从外部获取iframe内部元素方法: js : window.frames['frame'].document.getElementById("imglist"); //f ...
- Linux 下zip包的压缩与解压
linux zip 命令详解 功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串& ...
- Web项目中获取SpringBean——在非Spring组件中获取SpringBean
最近在做项目的时候我发现一个问题:Spring的IOC容器不能在Web中被引用(或者说不能被任意地引用).我们在配置文件中让Spring自 动装配,但并没有留住ApplicationContext的实 ...
随机推荐
- 深度学习原理与框架-RNN网络架构-RNN网络 1.RNN的前向传播 2.RNN的反向传播
对于神经网络而言,每一个样本的输入与输入直接都是独立的,即预测的结果之间并没有联系 而对于RNN而言:不仅仅是有当前的输入,而且上一层的隐藏层也将进行输入,用于进行结果的预测.因此每一个输入都与之前的 ...
- day38-常见第三方模块
1.requests模块 2.psutil模块 3.xlrd模块 4.xlwt模块 5.Paramiko模块
- ACM__并查集
并查集是树型的数据结构,处理不想交集合 主要解决查找和合并的问题 步骤: 初始化 把每个点所在的集合初始化为自身 复杂度为O(N) 查找 查找元素所在的集合,即根节点 合并 将两个元素所在的集合合并在 ...
- Haskell语言学习笔记(81)Data.Typeable
Data.Typeable 利用 Data.Typeable,可以打印动态类型信息. class Typeable (a :: k) where typeRep# :: TypeRep a typeR ...
- haproxy + nginx + proxy protocol 获得客户真实IP方法
公司网站架构为: 前面2台HA负载均衡,后面3台Nginx负载均衡反向代理,然后后面有N台WEB服务器 由于要统计IP,需要在WEB服务器日志里体现客户端真实IP 那么问题来了,通过HA代理的HTTP ...
- [ SHELL编程 ] 自动删除操作系统用户
Linux中经常需要删除用户,通常手工操作执行userdel操作即可,如果删除失败出现错误提示按照提示错误进行操作即可.如果是脚本需要调用删除用户操作呢?利用如下实例中drop_user删除用户函数, ...
- 软件工程github使用小结
1.在 https://github.com/join 这个网址处申请注册一个Github账号,申请成功后可在https://github.com/login 处利用刚刚注册的账号进行登录,才能开始在 ...
- UploadFtp
#!/bin/bash FILENAME=$ DSTDIR=$ FTPSRV=ip FTPUSER="user" FTPPWD="password" SRCDI ...
- Logo tools
http://www.cilogo.com/LOGO/
- Structs复习 Action
引入jar包 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...