实现原理

IOS软件下载必须使用自己的Apple ID登录itunes,才能在iPhone上安装
通过抓包软件查找App的历史版本ID
通过抓包软件修改下载请求,将请求中最新版本的ID改成历史版本ID,成功下载指定版本App

操作步骤

主要分为以下三步:
下载安装itunes、fiddler,设置fiddler并安装证书
找到想要下载APP版本对应的版本ID
找到版本ID后,修改下载请求,下载安装

第一步、准备工作

1.1 下载安装itunes、fiddler

下载安装iTunes,熟悉使用iTunes的App Store。
下载安装Fiddler4 v4.6.0.1,推荐下载此版本

1.2 设置Fiddler

打开 Fiddler,选择菜单栏 -> Tools -> Fiddler Options,在 HTTPS 选项卡中勾选 Decrypt HTTPS traffic,然后重启Fiddler

1.3 安装Fiddler证书

如果在Fiddler的使用过程中,提示Certificate Error证书错误,可以选择Yes忽略错误或者安装证书,教程请参考附录

第二步、查找版本ID

以UC浏览器为例,需要下载10.7.11版本,含有视频缓存下载功能。 2.1 打开iTunes,搜索要下载的App

2.2 点击下载或更新,等右上角出现箭头后删除下载

选中下载按2次Delete键即可删除。(如果不小心下载了,可以点下载或更新上面的图标,刷新页面,等按钮灰置之前,马上点击更新)

2.3. 在Fiddler查找相关请求

找到**pxx-buy.itunes.apple.com**、URL开头为 **/WebObjects/MZBuy.woa**的请求,双击请求切换右侧至 Inspectors 选项卡,并点击中间的黄色块(Response is encoded and may need to be decoded before inspection. Click here to transform.)
备注:如果相关https请求表现为Tunnel to(灰色文字),需要检查证书是否成功安装、HTTPS设置是否打开,再不行就下载步骤1.3的版本

2.4 保存该请求

第3步找到请求后,右键请求 -> Save -> Response -> Response Body。需要注意的是,如果没有点击黄色方块,将会保存一个乱码文件。

2.5 寻找App版本列表

可以拖拽到浏览器中打开该文件,搜索找到 **softwareVersionExternalIdentifiers**,其后一系列数字为该**APP历史版本号**。
从上往下为该 App 自第一个版本起每个版本在 App Store 中的版本 ID。

2.6 模拟请求查找版本

将第3步找到的请求,拖拽至Fiddler右侧Composer栏。
在Request Body中找到appExtVrsId位置,编辑右侧数字内容即版本号。版本号从第5步中从后几个id中挑选。如把图中816384552替换成813819687。
最后点击右上角Execute按钮。(如果出现左侧红色图标,则在左下角黑色框输入bpu取消断点)

2.7 确认ID对应的版本号

左侧列表底部找到新请求,点击展开Inspectors页面,点击黄色块。
右侧面板,下面一栏,切换到TextView,搜索bundleShortVersionString,可找到ID对应版本号。
如刚才输入的ID是813819687,查询出对应的版本是10.7.11。如果版本不正确,可重复第6步一次寻找。
最终确认要下载的版本ID,如10.7.11版本要UC的视频缓存功能。

第三步、下载APP

3.1 拦截下载请求

确认需要下载的版本ID后,复制。例如,下载UC浏览器10.7版本的ID为814450049。
在 iTunes 中重新搜索App。
然后切换到Fiddler,清空请求(快捷键CTRL+X),在左下角黑色输入框输入命令打开断点 bpu MZBuy.woa 回车(取消断点为输入bpu)

返回 iTunes, 点击下载或更新

3.2 修改下载请求

回到 Fiddler 后会出现红色图标的请求,点击请求显示Inspectors栏。
在TextView窗口,找到appExtVrsId 位置,下一行数字及为当前下载的版本ID。
编辑版本 ID 为需要下载的版本 ID,如上面查询到的814450049

3.3 确认下载

最后点击绿色按钮(Run to Completion)发送请求,进行下载。
下载过程中需要保持 Fiddler 和 iTunes 一同打开,不关闭。
如果长时间下载没反应,先暂停下载,点击Fiddler左下角Capturing取消拦截请求,再继续下载即可

3.4 下载安装

App下载可在itunes右上角查看进度。
完毕后,切换到应用界面,右键打开下载文件所在文件夹,找到.ipa安装包,在常用的软件(PP助手、iTools)中安装即可

以上.

附录

1. Fiddler安装证书

如果在Fiddler的使用过程中,提示Certificate Error证书错误,请选择Yes 或 根据以下步骤安装证书:
1. Fiddler 菜单栏 > Tools > Fiddler Options > HTTPS 选项卡
2. 点击左下方的 Export Root Certificate to Desktop按钮
3. 桌面上会出现一个“FiddlerRoot.cer”文件,右键安装证书
4. 安装证书的位置选择第二项,并点击“浏览”,选择“信任的根证书存储”。

2. itunes打开白屏怎么办?

Fiddler和itunes同时打开的情况下,可能会搜索不出来,页面白屏。
把Fiddler设置成不拦截请求:点击Fiddler左下角Capturing按钮,按钮消失即为不拦截
在itunes进行搜索
点击Fiddler左下角Capturing按钮,将拦截按钮显示,即可正常看到请求

3. Fiddler找不到itunes的请求怎么办?

一直不出现itunes的请求的话,可能版本不对或者证书没装上,建议安装Fiddler4,然后重装证书,应该可以出现。

4. 不能创建证书提示fiddler2 unable to generate certificate怎么办?

在创建证书的时候,如果提示fiddler2 unable to generate certificate,无法导出安装证书,将会导致https的包无法解开。
比较简单的解决方案是安装下载这个程序 fiddlercertmaker。
https的请求由灰变蓝即可

具体提示如下:
---------------------------
Unable to Generate Certificate
---------------------------
Creation of the interception certificate failed.
makecert.exe returned -1.
Results from C:\Program Files\Fiddler2\MakeCert.exe -ss my -n
"CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by
http://www.fiddler2.com" -eku 1.3.6.1.5.5.7.3.1 -r -cy authority -a
sha1
Error: Can't create the key of the subject ('JoeSoft')
Failed
-------------------------------------------

5.如何关闭Fiddler请求拦截

在开着Fiddler的时候,itunes可能会出现提示重新登录或者登录失败的情况(连不上服务器),解决方案为将Fiddler取消请求拦截,itunes登录之后,Fiddler再进行请求拦截。具体切换操作如下:
点击Fiddler左下角Capturing按钮即可,再点击即可打开

results matching ""

    No results matching ""