https://www.txthinking.com/talks/
Updated at: 2023-03-16
cloud@txthinking.com
由 Text to Image 生成
从 AppStore 下载旧版本的 App,这里以 YouTube v17.15.1 为例
😉 理论上在 macOS 也行,但我没找到对应版本 iTunes 的下载地址
😡 因为苹果的认证服务端会屏蔽很多商业 IP,所以我们提前登录和设置以避免未来的认证请求。
appid
: App IDversionid
: 历史版本 IDBrook:开启 Fake DNS;关闭 Bypass;开启 Programmable;开启 TUN;Script 填入:
text := import("text")
f := func(){
if in_address {
if in_address.domainaddress && text.has_suffix(in_address.domainaddress, "-buy.itunes.apple.com:443") {
return {
mitm:true,
mitmprotocol: "https",
mitmwithbody: true,
mitmautohandlecompress: true
}
}
return
}
if in_httprequest && !in_httpresponse {
return in_httprequest
}
if in_httprequest && in_httpresponse {
return in_httpresponse
}
}
out := f()
连接 Brook。然后从 iTunes 里下载 YouTube iPhone App。
MITM 日志里,你应该能看到一个 POST https://p52-buy.itunes.apple.com/WebObjects/MZBuy.woa/wa/buyProduct
,body 里即是。
😉 域名不一定和上面完全一样
appid
: body 里的 songId
即是。这里是 544007664
versionid
: body 里的 softwareVersionExternalldentifiers
即是
😉 这是个列表,你可以先全部保存下来
历史版本 ID ,是这样的 848374799
,怎么知道哪个版本 ID 对应的是 v17.15.1
呢?
历史版本 ID 列表是顺序排列的,自己跳跃着下载下来看看,相信以你的聪明才智一会就能找到想要的版本。视频里有我找的过程。
Brook:开启 Fake DNS,关闭 Bypass,开启 Programmable,开启 TUN,Script 填入:
😡 注意:请自己 fork 修改脚本内的
appid
和versionid
两个变量
appid := "544007664" // YouTube
versionid := "848374799" // v17.15.1
text := import("text")
f := func(){
if in_address {
if in_address.domainaddress && text.has_suffix(in_address.domainaddress, "-buy.itunes.apple.com:443") {
return {
mitm:true,
mitmprotocol: "https",
mitmwithbody: true,
mitmautohandlecompress: true
}
}
return
}
if in_httprequest && !in_httpresponse {
if in_httprequest["Method"] == "POST" && text.contains(in_httprequest["URL"], "/WebObjects/MZBuy.woa/wa/buyProduct") {
s := string(in_httprequest["Body"])
if text.contains(s, "<string>"+appid+"</string>") {
in_httprequest["Body"] = bytes(text.re_replace(`<key>appExtVrsId</key>\s*<string>\d+</string>`, s, "<key>appExtVrsId</key>\n<string>"+versionid+"</string>"))
}
}
return in_httprequest
}
if in_httprequest && in_httpresponse {
return in_httpresponse
}
}
out := f()
断开 Brook,重新连接。
从 iTunes 资料库 Library 右键删除刚才下载 YouTube App。重新下载 YouTube iPhone App。从资料库 Library 能看到已经下载的旧版本 YouTube,右键可以查看 ipa 位置。
这里使用 ideviceinstaller,macOS 有 brew 可以直接安装。Windows 不想自己编译的话,这里有编译好的,用这个吧先。
😡 必须是同一个 Apple ID
我用的是 GitBash
git clone https://github.com/iFred09/libimobiledevice-windows.git
cd libimobiledevice-windows
./ideviceinstaller.exe --install ~/Music/iTunes/iTunes\ Media/Mobile\ Applications/YouTube\ 17.15.1.ipa
遇到的情况分享一下:
Could not connect to lockdownd. Exiting.
,我重新插拔了几次 USB 就可以了https://www.youtube.com/watch?v=JtjIz-DldhA
从 这里 往下看