前提
微信小程序大家总所周知,但是有没有考虑到小程序文件是什么,包是什么,今天我给大家介绍一下微信小程序的包已经逆向分析得到里面的资源

格式
1、微信的小程序格式是:.wxapkg

2、本身微信小程序也没做任何加密(未用代码测试)

3、反编译出来的可能js文件压缩过了,变量会进行改动,很难复原

解读
微信小程序一共分成3大部分,header+index+data组成

header解读
下面是一段微信小程序文件的header代码

前面17bytes是header信息,下面我做了标记,蓝色的部分就是文件头

1、0x00-0x05[5bytes]:初步猜测可能是文件头用来标识文件的 big-endian

2、0x06-0x09[4bytes]:(index)这个是引索内容的长度 big-endian

3、0x0a-0x0d[4bytes]:(data)这个是数据内容的长度 big-endian
应该是前14个bytes,后面4个是引索的数据,file length = 14bytes+index+data
QQ截图20200810183524.png

index解读
文件名解读
下面图片标记的就是index引索的开始+第一段文件数据

1、0x0e-0x11[4bytes]:这个是打包的文件数量,这个上图截错了,应该属于index里面的信息:图片案例是 00 00 00 98 big-endian

2、0x12-0x15[4bytes]:这个是文件名的长度 图片案例是 00 00 00 1f,也就是31个字符串 big-endian

3、0x16-0x34[31bytes]:这个是文件长度 big-endian
QQ截图20200810183606.png

数据位置和长度解读
1、0x35-0x38[4bytes]:(start position)这个是数据所在的位置 big-endian

2、0x39-0x3c[4bytes]:(data block size)这个是数据的大小 big-endian

end position= start position + data block size
QQ截图20200810183646.png

总结
其他的数据跟这个是差不多的

获取到的数据,css是压缩过的,图片暂时不知道,unpack tools还没写,所以我也没办法得出最终的结果。

js不用想,我看了一下包里面js的关键词是压缩过的,跟f12元素审查是差不多的

如果有新的还会继续更新的!!

有其他问题的话可以评论!!
转载自:http://www.smalls.vip