美文网首页移动端设计研发
iOS利用iTunes获取应用包

iOS利用iTunes获取应用包

作者: 可惜你不是我的双子座 | 来源:发表于2018-08-22 14:07 被阅读30次

iTunes升级到12.7.0.166之后移除了App Store的功能。苹果官方提供了iTunes 12.6.3支持的App StoreiOS 11,下载地址为iTunes12.6.3.dmg
这个时候我们按照常规的打开iTunes应用时,会提示iTunes Library.itl由高版本创建,资料库无法打开,如下图。

错误提示.png
重新退出应用后,按住option键双击打开iTunes,单击创建资料库,如下图。
按住option键双击打开iTunes.png
创建资料库.png
打开iTunes之后,勾选应用,如下如。
选择应用.png
这时,在右上角的搜索框中输入想要下载的应用名称,如下图。
搜索微信.png
单击搜索列表中对应应用的获取或者下载按钮,即可下载该应用最新版本的ipa文件,如下图。
下载微信.png
下载之后,在资料库中找到刚刚下载的应用,单击右键,在弹出的快捷菜单中选择在Finder中显示选项,如下图,就会定位Finder所对应的ipa文件的位置了(这里下载的是微信 6.7.1)。
微信.png
通过这种方式只能下载最新版本的应用。下面介绍一种结合Charles下载早期版本应用的方法。(以网易云音乐为例)
打开Charles,设置Mac OS全局代理,
1.设置`Mac OS`全局代理
然后下载你需要获取应用,即可在Charles中看到类似https://p7-buy.itunes.apple.com。对该请求下断点,图中2的原因后面会说。
断点
然后删除资料库中已经下载的应用,重新单击获取应用的按钮,就会触发断点。在Request发出时,单击Execute按钮继续发送请求。
单击Execute按钮
Response会再次触发该断点。单击Edit Response选项,选择XML Text选项,可以看到类似如下的内容。
内容
如果你出现如下错误,是因为没有支持对https的请求,只需点击断点图中2的位置
错误
选出我们需要的那部分内容:
<key>softwareVersionBundleId</key><string>com.netease.cloudmusic</string>
  <key>softwareVersionExternalIdentifier</key><integer>828090879</integer>
  <key>softwareVersionExternalIdentifiers</key>
  <array>
    <integer>812932579</integer>
    <integer>812945326</integer>
    ......
    <integer>827420055</integer>
    <integer>827635604</integer>
    <integer>828090879</integer>
  </array>

解释一下这里的含义

  • softwareVersionBundleId:当前下载应用的Bundle ID
  • softwareVersionExternalIdentifier:其中的828090879和下面array中最新的数字对应,表示当前下载的版本。
  • softwareVersionExternalIdentifiers:包含该应用所有版本所对应的数字。为了下载早期版本,需要获取这里对应的数字。
    假如需下载版本827420055ipa文件,可以再次单击获取应用的按钮,触发断点,然后单击Edit Request选项,得到如下内容。
    当前内容
    这里的828090879表示当前要下载应用的版本。将这个值修改为827420055,然后单击Execute按钮,等待下载完成。在Finder中现实得到了网易云音乐 5.3.0.ipa。那么,如何将这些数字和版本号对应起来呢?在iTunes的搜索结果中单击目标应用下面的下拉菜单,选择复制链接选项,(题外话,细心的同学已经可以看到更新二字,表示下载的是早期版本)如图:
    复制链接
    例如,复制的链接是https://itunes.apple.com/cn/app/%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90-%E9%9F%B3%E4%B9%90%E7%9A%84%E5%8A%9B%E9%87%8F/id590338362?mt=8。提取其中的ID "590338362",然后访问https://api.unlimapps.com/v1/apple_apps/590338362/versions。全局搜索827420055,在其中找到对应版本号的external_identifier
    版本查看

摘抄至iOS应用逆向与安全,想提升自己,建议购买此书。

相关文章

网友评论

    本文标题:iOS利用iTunes获取应用包

    本文链接:https://www.haomeiwen.com/subject/sstdbftx.html