// Download older version iOS app
// https://www.txthinking.com/talks/articles/ios-old-version-app-en.article
// 使用 Brook 下载任意 iOS App 的旧版本
// https://www.txthinking.com/talks/articles/ios-old-version-app.article
// [CA]
modules = append(modules, {
address: func(m) {
text := import("text")
if m.network == "tcp" && m.domainaddress {
if text.has_suffix(m.domainaddress, "-buy.itunes.apple.com:443") {
return {
mitm:true,
mitmprotocol: "https",
mitmhandlebody: true
}
}
}
if m.network == "udp" && m.domainaddress {
if text.has_suffix(m.domainaddress, "-buy.itunes.apple.com:443") {
return { block:true }
}
}
},
mitmaddress: func(m) {
text := import("text")
if m.domainaddress && text.has_suffix(m.domainaddress, "-buy.itunes.apple.com:443") {
return { bypass: true, ipaddressfrombypassdns: "A" }
}
},
httprequest: func(request) {
text := import("text")
if request["Method"] == "POST" && text.contains(request["URL"], "/WebObjects/MZBuy.woa/wa/buyProduct") {
appid := "544007664" // YouTube
versionid := "848374799" // v17.15.1
s := string(request["Body"])
if text.contains(s, ""+appid+"") {
request["Body"] = bytes(text.re_replace(`appExtVrsId\s*\d+`, s, "appExtVrsId\n"+versionid+""))
}
}
return request
}
})