微信小程序编译包的获取与解压——在手机中获取小程序编译包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的实 ...
随机推荐
- 修改页面中显示出需要修改的数据(包括select选择框复显示)
页面中需要用到某个对象时,在底层代码中赋值,然后页面用java代码进行获取调用 如下截图: select复显示:根据后台方法赋值选择框 ,并设置初始值 按钮及选择框的禁用(五种方法): 方法一: $( ...
- 初识AutoMapper
在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层.业务逻辑层.服务层.数据访问层.层与层访问需要数据载体,也就是类.如果多层通用一个类,一则会暴露出每层的字段,二者会使类字段很多,而 ...
- ReactiveX 学习笔记(16)RxPY
RxPY RxPY 是 ReactiveX 的 Python语言实现. # 安装 RxPY $ pip3 install rx Successfully installed rx-1.6.1 Basi ...
- debian下redis2.8.17安装过程
下载redis源码包,我下载的是redis2.8.17 解压缩该源码包 tar zxf redis-2.8.17.tar.gz 进入解压缩后的目录 cd redis-2.8.17/ 添加redis用户 ...
- 面试官提出的问题应该怎么答?(如开发中使用过EasyUI吗?)
Jquery EasyUI是第三方基于Jquery框架开发的一款轻量级的,侧重于页面显示部分的框架,也可以称为插件. Jquery EasyUI使用比较简单,也有比较全的文档可供参考. 常用的组件就是 ...
- UITableView性能的优化()
1.0 使用不透明视图 不透明的视图可以极大地提高渲染的速度. 2.0 不要重复创建不必要的cell 也就是我们常说的 循环利用机制 (建立缓冲池) 3.0 减少视图的数目 4.0 不要做多余的绘 ...
- 学JS的心路历程-for of和for in
我们在刚入门JS时候,说到要跑出数组的每个值肯定都是这样子: var arr = [1,2,3,4,5,6]: for(let i = 0:i < arr.length:i++){ consol ...
- 新建gradle文件
按照新建自动步骤,建好文件后,在build-gradle 里面 写上: allprojects { group 'aaaa' version '1.0-SNAPSHOT' apply plugin: ...
- ubuntu14配置opencv3.4.1(转)
网站:https://blog.csdn.net/a1429331875/article/details/31539129 写此博客的目的是为了方便大家的学习,我是搞了半天,通过上网查找资料才成功的. ...
- XML 可扩展标记语言
因 为XML实在是太重要了,而且被广泛应用!不论是数据存储,还是其他方面,如配置文件等.XML是一种对独立于任何编程语言的数据进行编码的机制.在数据 交换领域,正在变得非常流行!因为他的基于节点的存储 ...