获取未加密的 ipa
这一步可以通过越狱手机砸壳获取,也可以直接通过线上网站下载。
砸壳 IPA
这里推荐一款 DumpDecrpter 进行砸壳。此方法可对任意 App Store 下砸的 App 进行砸壳。
-
越狱商店添加 CydiaKK源中文网:
https://apt.cydiakk.com/
-
搜索 DumpDecrypter
-
下载安装 DumpDecrypter
-
打开 DumpDecrypter,点击 TikTok 进行砸壳
- 将砸过壳的 ipa 导出到电脑。可以使用如下命令拷贝到电脑 Download 目录下
scp root@192.168.31.26:/var/mobile/Documents/DumpDecrypter/TikTok_34.7.1.ipa ~/Downloads
这里配合 iproxy, 使用 USB 连接 iPhone,拷贝速度更快。
在线下载
Decrypted iOS IPA App Store 在上述网站亦可直接下载到砸过壳的 IPA。
TikTok IPA 结构
拿到 IPA 以后有,简单分析一下。 TikTok 的可执行文件只有 94KB 大小,明显不是一个完整 App 该有的大小。
ll TikTok
-rw-r--r--@ 1 xin staff 94K Jun 8 00:25 TikTok
遂继续看其 TikTok.app/Frameworks/
目录下的文件,得知如下:
du -sh */. | sort -rh
241M MusicallyCore.framework/.
7.5M VolcEngineRTC.framework/.
3.1M TTFFmpeg.framework/.
2.8M TTPOrbuService.framework/.
2.2M byteaudio.framework/.
1.5M crypto.framework/.
996K bytevc1enc.framework/.
708K boringssl.framework/.
620K RTCFFmpeg.framework/.
356K SCSDKCoreKit.framework/.
284K libvcn.framework/.
244K SCSDKCreativeKit.framework/.
244K RealXBase.framework/.
140K SpotifyLogin.framework/.
116K AAAASingularity.framework/.
108K ffmpeg_dashdec.framework/.
92K BDLRepairer.framework/.
84K AAWEBootChecker.framework/.
80K AAWELaunchTracker.framework/.
很明显,MusicallyCore.framework
才是我们需要关注的对象。
dump 头文件
获取 class-dump 可执行文件
使用 class-dump 该工具进行 dump。
直接使用作者提供的二进制文件,执行 dump 命令,发现报错如下:
~/Downloads/class-dump-3.5/class-dump TikTok.app/Frameworks/MusicallyCore.framework
2024-06-15 17:00:36.237 class-dump[8684:177613] Unknown load command: 0x00000032
2024-06-15 17:00:36.572 class-dump[8684:177613] Error: Cannot find offset for address 0x8500000000000000 in dataOffsetForAddress:
遂下载源码到本地,将一出报错改正:
即 PLATFORM_IOSMAC
改为 PLATFORM_MACCATALYST
即可。
Xcode 编译一下,然后在如下目录取出产物二进制文件即可。
执行 dump 命令
将 TikTok 头文件保存到 TikTokHeader
目录下
class-dump TikTok.app/Frameworks/MusicallyCore.framework -H -o TikTokHeader
找到如下数量文件
find ./TikTokHeader -type f | wc -l
60587