@TOC
抓包相信大家肯定已经会了吧,不会的可以参考和的相关文章
这里怎么保存的不用我多说吧,重点在后面的分析过程
我这里使用的是,其他的工具都大同小异,自行选择
3.1 ttpkg的文件结构
这里通过搜索引擎查找相关资料,居然只找到一篇相关的,大概结构可参考这篇文章:https://blog.csdn.net/weixin_29002961/article/details/117869108
这里贴出文件的大概结构信息(实际肯定有差距)
3.2 通过WinHex分析数据
打开文件,第一眼就可以看到大量的明文数据,前四个字节是,后面很多文件路径之类的东西,再往下翻会看到文件内容之类的东西
我这里复制了一份到可以格式化代码的编辑器里面,通过可以看出大概的文件结构
之所以要复制一份是防止破坏源文件的结构(你猜我是怎么知道的[手动狗头])
我这里使用的phpstorm导入的文件,通过代码格式化后可以看到有一个json的开始,并且没有乱码之类的,结束的地方在,后面再跟的就是一个js代码的开头了,可以猜测在文件的某个地方存有文件开始位置和结束位置或者文件长度的数据
打开WinHex在文件顶部,查看两个明文之间的间距是多少,这种一般都会有一定的规律,这里看到间距的长度为,是16进制的,所以在十进制中代表的,也就是每个明文路径之间有十二个字节的间距,这里经过多次对比后确定长度就是
3.3 对比每组数据的差异与共同点
选中数据后点鼠标右键选择
然后粘贴到编辑器里面,并把每个端后面的文件名复制到后面,按照两个字符为一组用空格进行分割,下面是我分析出来的数据
蓝色框里代表不同的数据,红色框里代表相同的数据,通过分析可得出第三个框里的数据为文件名称的长度,其余的都是结构体剩余的字节,比如类型占用四个字节,的长度为14,所以对应的16进制为,的长度为6,在16进制里也就是,这里定位了文件名称长度的位置,就是每段空白字符的第9-12个字节,因为使用的是存储的,所以是逆序的,大端存储和小端存储可以百度一下。
3.4 定位文件起始位置和结束位置
因为第一个文件为json,所以我们就会想起最开始的那个json头,先找一下偏移位置是多少,再去数据里找相应的16进制数据。这里就定位了文件名称后面第一个4个字节就是我们要找的文件内容开始位置,因为使用的大端存储,所以是逆序的,源数据为:,通过逆序后就是,跟我们手动找到的文件头偏移地址一致
以上就是本篇文章【[原创]【逆向分析】抖音小程序ttpkg.js文件解包记录】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/9547.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多