smalls的头像

smalls

一个22岁的菜鸟程序员

我的技能

PHP

JAVA

JS

GO

PYTHON

文章目录

微信小程序文件逆向分析(文件解读)

前提

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

格式

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

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

数据位置和长度解读

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

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

end position= start position + data block size

总结

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

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

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

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

有其他问题的话可以评论!!

给作者打赏一下吧

文章评论

暂无评论
留言板
评论