使用 Workflow + Charles 下载任意版本的 App

自从去年设备上 iOS 9.3.5 越狱出了问题之后,我又回到了没有越狱的状态。于是就半路出家又去少数派学习了一年的 App 玩法,学有所成就回来分享一个可以用来给逆向工程提供便利的小技巧:使用 Workflow + Charles 下载任意版本的 App。

首先我们要准备好以下的软件:

  1. Charles
  2. Workflow ( iOS )
  3. iMazing

在 Mac/Win 上安装好 Charles,并安装 SSL CA 证书。


在钥匙串中将证书设置为始终信任。


使用场景举例:我目前手里可越狱的设备还有一台 iPhone 4 ,最近看了 iOS Hacking Guide 里面第 93 页提到的了使用 Cycript 调试,不用输入密码即可直接进入 App 界面的方法引起了我的兴趣。我自己目前在用 1Password 来管理我的所有密码,所以我就想测试是否能够用 Cycript 绕过 1Password 的密码验证界面呢?但是很不幸的是我尝试去 App Store 下载 1Password,它提示最低需要 iOS 8兼容。使用 App Admin ?也是最低需要 iOS 8 才可以安装。所以还是自己动手丰衣足食下载一个兼容 iOS 7 的 1Password 来测试吧。

在 iOS 设备上安装这个 Workflow:版本信息 。接着运行这个 Workflow,查询你想降级的 App.


选择查询版本信息,最后你会得到一个文本数据,使用 Airdrop 传到 Mac 上备用。
接着我去 Google 了一下,1Password 对于 iOS 7 最后的一个版本是 Version:4.5.3,打开刚才 iOS 那边发送过来的版本信息查询 Version:4.5.3 所对应的 ID:596285445。记好这个 ID 它就是 1Password Version:4.5.3 的“身份证”一会我们就要告诉 iTunes 去下载这个版本的 1Password。


接下来打开 iTunes 与 Charles,前往 App Store ,查找 1Password 并下载。打开 Charles ,看看是否有一个地址是:p数字-buy.itunes.apple.com 的链接。

右键打开 SSL 流量分析与断点。并且删除 iTunes 中正在下载的新版的 1Password。


在 iTunes 1Password 界面按下 ⌘ +R ,刷新下载页面,再次选择下载 1Password。当开始下载时就触发了 Charles 的断点,跳出了这样一个界面。选择 Edit Request → XML Text 之后就会看到这样一个界面:

将 appExtVrsld 对应的值修改为刚才查询到的:596285445,然后点击 Execute,之后还有再跳出断点界面直接点击 Execute。
返回 iTunes 你就会看到我们的 1Password Version:4.5.3 正在下载了.

下载成功后再使用 iMazing 将 ipa 安装到我的 iPhone 4 上面,于是又可以开始折腾了。(之所以建议使用 iMazing 是因为如果使用 iTunes 有时还需要经过备份数据等操作耗时较久,其他盗版助手类工具不是太喜欢所以就是用 iMazing 了。)

3 个赞

我记得workflow上有类似的插件,可能更加方便点:grinning:

Workflow 用来获取历史版本号,并不能发送请求吧

啥插件……

好文章

对于 Workflow 来说应该不是叫插件,而是 Workflow。

嗯对,只能做到查询App版本的ID

就是我上文提到的这个啊

App Admin

http://bbs.feng.com/read-htm-tid-10125110.html
win下面可以使用这个,都是修改版本ID进行下载。

实现原理一样,操作比我麻烦,无法确定ID对应的版本 所以?

你的简单些,能快速确定ID版本号。

它只是一个工作流 不代表插件 不过谢谢分享了 越狱后一个降价插件耶可以搞定 话说933你怎么挂掉的 我是美好 忘记备份 蛋疼 哈哈