2017年5月4日星期四

IOS抓包下载旧版本应用APP

前言

有时IOS应用更新至最新版本之后,新版UI风格、使用习惯、功能不喜欢,但又不知道如何降级安装旧版本。例如UC浏览器2016年春节前更新版本,因某些原因下架了文件管理、离线视频、微信分享等功能,其App Store评分从四星半降至1星。
同步助手曾提供下载App历史版本的功能,但现在也不复存在。
本文将介绍如何使用iTunes下载安装App Store任意版本旧程序。技术贴,需要大家耐心阅读,理解实现原理,一步一步操作,不熟悉的话可能需要花费1-2小时的时间。


实现原理

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

操作步骤

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

第一步、准备工作

1.1 下载安装itunes、fiddler

  1. 下载安装iTunes,熟悉使用iTunes的App Store。
  2. 下载安装Fiddler(官网下载、或者百度搜索Fiddler安装、交流群可下载)
  3. 或者使用本站提供的版本Fiddler4 v4.6.0.1推荐下载此版本
win8以上系统建议安装Fiddler for .NET4,win7也建议安装Fiddler4.


1.2 设置Fiddler

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

1.3 安装Fiddler证书

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

1.4 关于教程图

本文配图均为高清1:1配图,看不清的清点击图片看大图,或再查阅原图。

第二步、查找版本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. 部分APP版本ID及介绍

APP版本版本ID简介
UC浏览器 V10.7814450049能离线视频缓存
QQ浏览器 V6.1.1813125939能缓存视频
QQ空间 V5.1.1811660738动态浏览无广告
百度云 V6.6.0812649628支持解压文件,支持视频接入WIFI自动上传
百度贴吧 V6.9.6814101616能本吧内搜索
支付宝 V9.2813710368越狱也能使用指纹支付
网易新闻 V3.6.216708686广告少
爱奇艺 V5.7.1759732747无片头广告(目前已不能下载,官方不放出旧版本)
蜻蜓FM V4.7.6813883538无音频广告
追书神器 V2.23.1812773310依然有广告,不需要追书币追根模式健在
酷狗音乐 V3.9.4276022645纯粹的播放器
115网盘 V6.0.0816723879支持添加离线下载

2. Fiddler安装证书

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


3. itunes打开白屏怎么办?

Fiddler和itunes同时打开的情况下,可能会搜索不出来,页面白屏。

  • 把Fiddler设置成不拦截请求:点击Fiddler左下角Capturing按钮,按钮消失即为不拦截
  • 在itunes进行搜索
  • 点击Fiddler左下角Capturing按钮,将拦截按钮显示,即可正常看到请求

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

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

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

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

6. 如何关闭Fiddler请求拦截

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

7. UC浏览器精彩评论



没有评论:

发表评论