从iTunes获取老版本ipa包(以facebook为例)

        刚开始搞ios逆向分析的时候想找一个合适的测试机也是挺麻烦的,新买的设备不能越狱还贵,二手的设备一般又没有还原锁密码,后来终于从箱底找到了个iphone5,但是版本太老了,从appstore里安装的应用都提示不兼容“Download an older version of this app? The current version requires IOS 9.0 or later ...”,又不敢轻易升级,担心跟上一块从二手店里买的6s一样变砖(刷机后需要激活锁密码)。

        后来查到可以在iTunes下载时抓包分析改下参数就可以从iTunes里下载到老版本的ipa文件,于是自己尝试了一下,好了,废话连篇。

        1. mac安装Charles,并安装根证书授权,mac版和win不太一样的地方就是需要去“钥匙串访问”里授权。

安装根证书

    2. 打开iTunes,去“appStore”里面搜索要下载的应用(以“facebook”为例),并点击下载,这时可以在Charles里看到类似 “https://p25-buy.itunes.apple.com” 的请求,然后对该请求下断点,同时因为这是条https请求,所以要将链接复制加入“SSL Proxying Setting”中。

点击下载目标应用的当前版本
类似图中的请求网址

        3.等待应用下载完成后去iTunes的“资料库”中找到下载完成的应用,右键目标选择“在finder中显示”,然后在finder中将文件彻底删除,最后再次回到iTunes的appStore中搜索该应用再次下载该应用,此时会在第二步中下的端点处停下,第一次停下是发出Request请求,点击“Execute”,第二次停下是收到了Response回应,第二次停下时点击“Edit Response”,选择“XML Text”选项,可以看到如下内容,并保存下来。

```

    ... ...

    ... ...

softwareVersionBundleIdcom.facebook.Facebook

  softwareVersionExternalIdentifier830380613

  softwareVersionExternalIdentifiers

 

    18372

    ... ...

    ... ...

    2927134

    2994689

    3110723

    3127322

    3151184

    3248735

    3539776

    3611071

    3680022

    3759852

    3926286

    4095539

    4153214

    4429604

    4438870

    4827909

    5507927

    5880588

    9138323

    10528067

    11444640

    11983243

    12152835

    12235437

    12795110

    13558845

    13840059

    13875036

    14115688

    14701724

    15051581

    15095799

    ... ...

    ... ...

  vendorId10684

hasFamily

```

softwareVersionBundleId:    当前下载应用的Bundle ID;

softwareVersionExternalIdentifier:    值为“ 830380613”,与下面array中的数字一样表示版本序号。

        4.如要下载版本序号为“ 14115688”的ipa文件,可以删掉下载的文件,再次点击下载应用,在发出Request请求时触发断点,点击“Edit Request”中的“XML Text”,其中的“appExtVrsId”的值就是当前正要请求下载的版本号,将之修改为我们想要的版本号,这里输入“ 14115688”,点击继续,等待下载完成即可得到目标ipa。【tip:下载即将结束时断点也会断下来,注意一下点击“Execute”即可】。

        5.这里的“830380613”、“14115688”是和对应facebook210.0、Facebook197.0是相互对应的,这个也是可以查询到的:

      在iTunes中查询应用时,单击目标应用下拉菜单,选择“复制链接”,

例如,facebook的链接是“https://itunes.apple.com/us/app/facebook/id284882215?mt=8”,提取其中的ID“ 284882215”,然后访问“https://api.unlimapps.com/v1/apple_apps/284882215/versions”,其中的“284882215”是我们替换掉的上面的ID,访问结果:

对比其中的版本号和ID即可选择我们想要的id。

你可能感兴趣的:(从iTunes获取老版本ipa包(以facebook为例))