一、前言
之前一篇文章已经详细介绍了 微信小程序包的格式 ,在之前文章中也了解到小程序包存放在沙盒目录,但是微信为了让小程序包安全就对文件名做了一个处理,导致我们很难找到对应的小程序对应的包文件,所以本文就来开发一个辅助插件,可以查看微信小程序的appid以及快速找到对应的小程序包文件,然后利用之前的解析工具直接本地解析程序包即可,下面就开始我们的表演吧!
二、添加小程序菜单
首先第一步还是国际惯例,我们如果想暂时小程序的一些信息包括appid,版本号,本地存放路径文件名等,那么如何在微信页面中展示呢?首先来看一下小程序的页面:
然后我们就开始找到这个布局菜单,添加我们想要的菜单信息了,这个找入口有很多方式,比如可以通过字符串信息反编译之后去找对应的id值,或者是利用ui工具直接查看id信息,这里我就用这种方式:
(此图片来源于网络,如有侵权,请联系删除! )
看到了id是c8p,然后去反编译微信之后在values/public.xml中查找这个值,记得是type=id,name=c8p这一项哦:
(此图片来源于网络,如有侵权,请联系删除! )
找到之后,把id值转化成十进制,然后去Jadx中搜索吧,这里要注意我也说了很多遍了,微信做了拆包操作,而且微信包很大,直接用Jadx打开微信会卡死的,所以需要解压依次打开它的所有dex文件即可,然后就是挨个dex中搜这个值即可:
(此图片来源于网络,如有侵权,请联系删除! )
然后继续查找:
(此图片来源于网络,如有侵权,请联系删除! )
查看引用的地方:
(此图片来源于网络,如有侵权,请联系删除! )
点击进去查看定义:
(此图片来源于网络,如有侵权,请联系删除! )
然后就来到这个类,用的是RecyclerView控件了,这个类应该就是操作初始化底部菜单的地方了,我们需要找到这个控件的adapter,查看如何添加菜单的,因为拆包导致这个类被分的很开,而这个类有很多内部类,所以我们依次在每个dex中查找这个包下的这个类以及他的内部类,最终在这个地方看到: