吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10563|回复: 70
收起左侧

[原创] 【逆向分析】抖音小程序ttpkg.js文件解包记录

  [复制链接]
l2399007164 发表于 2022-9-5 20:13
本帖最后由 l2399007164 于 2022-11-16 18:23 编辑

@TOC

一、通过Fiddler抓包获取到小程序的配置信息文件,其中包含ttpkg.js文件的路径

抓包相信大家肯定已经会了吧,不会的可以参考吾爱看雪论坛的相关文章

抓包截图

二、浏览器打开对应的ttpkg.js文件,并保存到本地

这里怎么保存的不用我多说吧,重点在后面的分析过程

在这里插入图片描述

三、通过16进制分析工具进行数据分析

我这里使用的是WinHex,其他的工具都大同小异,自行选择

3.1 ttpkg的文件结构

这里通过搜索引擎查找相关资料,居然只找到一篇相关的,大概结构可参考这篇文章:https://blog.csdn.net/weixin_29002961/article/details/117869108

这里贴出文件的大概结构信息(实际肯定有差距)

在这里插入图片描述

3.2 通过WinHex分析数据

打开文件,第一眼就可以看到大量的明文数据,前四个字节是固定标识,后面很多文件路径之类的东西,再往下翻会看到文件内容之类的东西

文件头
固定头

部分文件内容 在这里插入图片描述

我这里复制了一份导入到可以格式化代码的编辑器里面,通过代码格式化可以看出大概的文件结构
之所以要复制一份是防止破坏源文件的结构(你猜我是怎么知道的[手动狗头])

我这里使用的phpstorm导入的文件,通过代码格式化后可以看到31行有一个json的开始,并且没有乱码之类的,结束的地方在1210行,后面再跟的就是一个js代码的开头了,可以猜测在文件的某个地方存有文件开始位置和结束位置或者文件长度的数据

在这里插入图片描述

打开WinHex在文件顶部,查看两个明文之间的间距是多少,这种一般都会有一定的规律,这里看到间距的长度为CC是16进制的,所以在十进制中代表的12,也就是每个明文路径之间有十二个字节的间距,这里经过多次对比后确定长度就是C

在这里插入图片描述
在这里插入图片描述

3.3 对比每组数据的差异与共同点

选中数据后点鼠标右键选择编辑-复制选块-十六进制数值

在这里插入图片描述>在这里插入图片描述

然后粘贴到编辑器里面,并把每个端后面的文件名复制到后面,按照两个字符为一组用空格进行分割,下面是我分析出来的数据

蓝色框里代表不同的数据,红色框里代表相同的数据,通过分析可得出第三个框里的数据为文件名称的长度,其余的都是结构体剩余的字节,比如int类型占用四个字节,'app-service.js'的长度为14,所以对应的16进制为E'app.js'的长度为6,在16进制里也就是'6',这里定位了文件名称长度的位置,就是每段空白字符的第9-12个字节,因为使用的是大端存储的,所以是逆序的,大端存储和小端存储可以百度一下。

在这里插入图片描述

文件顶部数据比较特殊,通过之前的分析可分析出以下数据:版本号4个空字节占用文件个数第一个文件名称长度,这里我们发现文件头里面并没有我们需要的文件起始位置和结束位置的信息
在这里插入图片描述

3.4 定位文件起始位置和结束位置

因为第一个文件为json,所以我们就会想起最开始的那个json头,先找一下偏移位置是多少,再去数据里找相应的16进制数据。这里就定位了文件名称后面第一个4个字节就是我们要找的文件内容开始位置,因为使用的大端存储,所以是逆序的,源数据为:6F 25 00 00,通过逆序后就是00 00 25 6F,跟我们手动找到的文件头偏移地址一致

在这里插入图片描述

数据长度也通过同样的方式分析,通过右键把json开始的{设置为选块起始位置,再把结尾的地方选择为选块结束位置,即可
在这里插入图片描述

在这里插入图片描述

OK,至此所需要的数据就找完了,有了这些数据就可以把文件名称对应的文件内容写出来了

最终解包效果图如下:
在这里插入图片描述






ttpkUnpacker.zip

97.13 KB, 下载次数: 277, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 20威望 +2 吾爱币 +116 热心值 +16 收起 理由
calgulaotr + 1 我很赞同
PDX123 + 1 + 1 我很赞同!
Gilbert1123 + 1 谢谢@Thanks!
DSUPER + 1 谢谢@Thanks!
奇奇小霸王龙 + 1 小程序包的路径 data/data/com.ss.android.ugc.aweme\files\bdp\launchcach.
xiaoxi52pj + 1 热心回复!
se2303765 + 1 + 1 我很赞同!
windpeaceflowe + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
txm000 + 1 + 1 我很赞同!
ULL + 1 + 1 谢谢@Thanks!
Ningcha + 1 + 1 谢谢@Thanks!
xiaomr1990 + 1 + 1 谢谢@Thanks!
cjcmxc + 1 + 1 热心回复!
eer123 + 1 + 1 用心讨论,共获提升!
rock1102 + 1 + 1 热心回复!
努力加载中 + 1 + 1 热心回复!
wuaipojiehaha + 1 + 1 热心回复!
gaosld + 1 + 1 谢谢@Thanks!
Hmily + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lzngy + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| l2399007164 发表于 2022-9-10 14:22
eer123 发表于 2022-9-8 11:39
小程序整得越来越复杂,感谢分享!

并不是越来越复杂,跟微信的是差不多的,为了预加载更快才有了这种打包数据的方式
Barbara 发表于 2022-9-8 22:40
emailsina 发表于 2022-9-6 14:55
好复杂,,,不知道能不能刷人气。。。。。
q5269174 发表于 2022-9-6 15:57
太复杂了,搞得快没头绪了
 楼主| l2399007164 发表于 2022-9-6 16:09
q5269174 发表于 2022-9-6 15:57
太复杂了,搞得快没头绪了

有写好的工具呀
mirs 发表于 2022-9-6 16:59

京东小程序呢?
ghd19940802 发表于 2022-9-6 17:43
能改小程序游戏的体力么
aonima 发表于 2022-9-6 18:51
感谢分享
 楼主| l2399007164 发表于 2022-9-6 19:34
emailsina 发表于 2022-9-6 14:55
好复杂,,,不知道能不能刷人气。。。。。

复杂倒是不复杂,这只是最基础的文件分析了。那种加密的我这种菜鸡就搞不明白了,哈哈
 楼主| l2399007164 发表于 2022-9-6 19:34
mirs 发表于 2022-9-6 16:59
京东小程序呢?

京东的没分析过
zhengsg5 发表于 2022-9-6 23:14
有点复杂,看起来吃力!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 22:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表