戳我
戳我
文章目录
  1. iOS逆向-下载历史版本
    1. 准备工作
    2. 开始抓包
      1. 获取APP的下载链接和版本号对应的参数
      2. 推断控制版本的关键字段
      3. 修改Request参数下载历史版本
    3. 软件安装

iOS逆向-下载历史版本

iOS逆向-下载历史版本

目前App Store默认只能下载最新版, 而我们的目的是要能够下载到App Store中的历史版, 那就要借助一些其他工具来实现.
原理如下:

通过Charles来获取下载链接, 通过分析来得到每个版本在连接中所对应的字段, 再通过Charles来截取和替换下载链接中的参数, 来达到下载特定版本App的目的.

准备工作

  1. 安装Charles.
  2. 为了Charles能够抓取HTTPS类型的链接, 需要安装Charles的证书, 参考这里Charles抓包HTTPS请求.

开始抓包

安装了Charles之后, 我们就可以获取App的下载链接了, 并且从中分析出我们需要的参数.

获取APP的下载链接和版本号对应的参数

下面我们以iOS上一款比较好用的看书软件追书神器为例来说明.

  1. 首先打开ITunes来下载软件, 点击下载, 通过Charles来确定下载软件的链接.
    点击下载
  2. 在Charles中观察发现, ITunes使用的是HTTPS链接, 无法直接查看request内容.
    无法直接查看HTTPS
  3. 我们通过添加SSL Proxying来查看request内容, 并且通过给链接加断点来详细分析请求的参数.

添加SSL Proxy
添加断点

推断控制版本的关键字段

观察response, 推断softwareVersionExternalIdentifiers展示的是全部的APP对应的版本, softwareVersionExternalIdentifier是用来标记当前版本.追书神器目前的版本标记是820420814
字段分析
通过在request中搜索820420814发现,appExtVrsId是来标记要下载哪个版本.
推断关键字

修改Request参数下载历史版本

我们在softwareVersionExternalIdentifiers中任选一个版本号, 此处我以819147298为例

  1. 删除刚才下载好的软件, 重新下载.
  2. 因为我们在下载链接中加的有断点, 再次下载时Charles会停在断点的位置
  3. 点击Edit Request来编辑appExtVrsId字段
    Edit Request
  4. 执行断点, 继续下载.
  5. 在ITunes中看到更新的标志说明下载成功
    下载成功

软件安装

通过ITunes来安装下载好的软件到手机.


参考文献:
1.Charles抓包HTTPS请求.
2.iOS秘籍-下载历史版本App超详细教程.