准备工作:

微信关注需要下载编译包的小程序,然后点进去看一下,微信就会自动下载相应的编译包到手机上了。

获取小程序编译包:

据说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的更多相关文章

  1. (转)Unity中使用C#实现Zip包的压缩与解压

    使用SharpZipLib库,下载地址为:http://icsharpcode.github.io/SharpZipLib/ /************************************ ...

  2. Jenkins通过FTP上传站点太多文件导致太慢且不稳定,切换为压包上传再解压的思路(asp.net)

    在本地先处理好要上传的站点文件之后,可能会因为一些网页切图导致ftp上传不稳定,中断,或者文件占用的问题. 那么换了一种实现思路,要借助jenkins的工具jenkins-cli.jar. 解决思路: ...

  3. PHP获取http头信息和CI中获取HTTP头信息的方法

    CI中获取HTTP头信息的方法: $this->input->request_headers() 在不支持apache_request_headers()的非Apache环境非常有用.返回 ...

  4. Linux下解包/打包,压缩/解压命令

    .tar 解包:tar xvf FileName.tar 打包:tar cvf fileName.tar DirName tar.gz和.tgz 解压:tar zxvf FileName.tar.zi ...

  5. 【转】【Linux】Linux 下zip包的压缩与解压

    linux zip 命令详解 功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串& ...

  6. Android手机中获取手机号码和运营商信息

    代码如下: package com.pei.activity; import android.app.Activity; import android.os.Bundle; import androi ...

  7. JS/jquery获取iframe内部元素和ifame中获取外部元素精华

    1.从外部获取iframe内部元素方法: js : window.frames['frame'].document.getElementById("imglist");   //f ...

  8. Linux 下zip包的压缩与解压

    linux zip 命令详解 功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串& ...

  9. Web项目中获取SpringBean——在非Spring组件中获取SpringBean

    最近在做项目的时候我发现一个问题:Spring的IOC容器不能在Web中被引用(或者说不能被任意地引用).我们在配置文件中让Spring自 动装配,但并没有留住ApplicationContext的实 ...

随机推荐

  1. Windows 环境变量立即生效

    先进环境变量 保存一个份PATH值. 万一改错就不好了 cmd窗口中 set path=XXXXXXXX

  2. Delphi 三层TDataSetProvider

    在Delphi想使用三层架构或者使用TClientDataSet控件,一般都需要引用TDataSetProvider控件,现对TDataSetProvider控件的Options属性值做一个简单的分析 ...

  3. spark 集成elasticsearch

    pyspark读写elasticsearch依赖elasticsearch-hadoop包,需要首先在这里下载,版本号可以通过自行修改url解决. """ write d ...

  4. pandas 笔记

    删除: del df["A"]  # 原地修改 df.drop("a")  # 返回修改后的新对象 df.drop(["a", " ...

  5. 尚硅谷springboot学习8-yaml基本语法

    1.基本语法 k:(空格)v:表示一对键值对(空格必须有): 以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的 server: port: 8081 path: /hello 属性 ...

  6. Nginx缓存配置以及nginx ngx_cache_purge模块的使用

    web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...

  7. 运行vue项目--安装vue脚手架vue cli

    第一步. 安装node: 官网下载node的.pkg,下载地址,选择相应版本进行下载 mac终端下输入npm -v 和 node -v, 出现相应版本号即安装成功. 若均提示 command not ...

  8. 找某個ColumnName在那些Tables

    想找ColumnName叫CRE_USR的欄位在那些Table呢? (For SQL Server) SELECT o.name, o.* FROM syscolumns c INNER JOIN s ...

  9. unarjs识别组建compoment

    http://stackoverflow.com/a/28210364/1070244 判断自定义元素,是否为未知元素 chrome和firefox存在差异,尤老 研究的代码 // Chrome re ...

  10. 前后台联调,突然所有的接口请求状态为200,但response什么都没有只有一句灰色的英文

    问题解决了,图就下次遇到截图补上: 解决问题的方法,是让后台查看数据库是否锁库,或者更改什么配置文件例如.xml文件,还有就是ip错误: