# ipa与马甲包 | 一种取证思路

## **前言**

通过检索相应资料，发现一些有趣的内容，关于马甲包，也关于躲避苹果审核站着把钱挣了的奇妙手段。

本文旨在探讨，从AppStore取证ipa安装包的一种可行性，该路径未经司法实践验证，亦不可用于实际取证参考。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677426938227/167e29e3-278e-424e-881c-7271a5ef0238.jpeg align="center")

## **一、ipa的获取**

如周知，ipa是苹果应用的后缀格式，与之对比的，是安卓应用的apk后缀。

面临获取应用安装包的取证需求处理时，不同系统应用，取证方式大不一样。

若待获取目标为安卓apk应用，使用安卓手机直接下载应用至本地后，通过数据线连接电脑的方式，找到存放路径，即可导出apk安装包。数据线导出apk安装包这一路径，使用公证处的可信任设备可完成存证。

若待获取目标系苹果AppStore应用，鉴于iOS系统的封闭性与特殊性，该ipa安装包的下载导出将更为复杂。

**获取ipa的方式，一般有以下路径：**

* 使用越狱iPhone直接下载应用，类似安卓手机，连接数据线导出；
    
* 安装爱思助手、iTools等第三方应用，软登录apple id后，下载ipa导出；
    
* 使用Macbook安装第三方软件，如Apple Configurator，模拟移动设备，软登录AppStore，下载ipa至本地导出；
    
* Win电脑安装低版本iTunes Windows版本，登录Apple id，下载ipa应用至本地；
    

考虑到公证处常用的信任硬件设备、公证书后续步骤描写支持的“清洁”程度，笔者建议，以最后一种路径进行取证较为安定。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677426962942/73ca139b-55d7-4787-b93d-5d5601a7b856.jpeg align="center")

## **二、道听途说**

### 1、取证原因

需要取证固定安装包，原因可能有两种。

其一，用户端展现的应用内容存在抄袭、侵权可能，安装包源代码可能也存在相似、借鉴的可能性，公证安装包内容时，把安装包一并给固定了，未雨绸缪，为后期鉴定提供前置条件。

其二，该安装包实际是马甲包，哥们扒了其他已过审包体，简单添加了混淆代码，并顺利过审AppStore占坑。包体内置了切支付，加了时间戳判定和热更新，挂羊头卖狗肉。

### 2、一些名词

#### **（1）马甲包**

常见的一种形式为个人开发者账号提审发布于AppStore，因未接入苹果支付，免费软件，亦无提交其他软件运营资质要求，过审概率高。

通过大量的设备、绑定大量个人开发者账号，堆砌数量的形式提交马甲包并发布审核，以数量和去摸索AppStore黑箱审核的过审标准。若顺利过审，那么在AppStore可顺利占据一个软件坑位。

A软件过审，B内容运营，亦是马甲包的一种。

#### **（2）切支付**

如周知，每一笔接入苹果支付的收款，苹果税收取占比30%。若应用切支付，苹果将收不到钱，可谓是站着把钱挣了。

关乎利益问题，苹果深恶痛绝严厉打击。奈何切支付软件数量众多，一如过江之鲫。

#### **（3）时间戳**

此处时间戳，非tsa时间戳，实际是一类系统时间读取判断逻辑。通过读取用户端系统时间，决定显示的内容。

马甲包过审后，后续运营内容的一种手段。见下图。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677427300990/4cd82dbb-b46e-4500-8112-712b39ff4df8.jpeg align="center")

#### **（4）热更新**

原理如下图。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677427272759/6bf0be58-1732-4188-91ef-c0e16253d10a.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677427280827/1c15bcb2-5bba-41b6-83d1-71c07efdd7f6.png align="center")

以补丁的形式更新下载，替换显示其他包体内容。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677426969163/eede4b1c-4b28-4213-a50b-39d019e4f96d.jpeg align="center")

## **三、ipa的取证**

### 1、取证账号、设备要求：

* Apple id及常用账号常登录iPhone（验证公证处陌生设备）；
    
* 七麦账号；
    
* 公证处PC电脑；
    
* 公证处iPhone；
    
* iTunes 12.1.3 64位安装包（有消息称iTunes 12.6.3.6 64位安装包同样可行，待证实 ）；
    
* U盘（已拷贝旧版本iTunes）；
    

### 2、取证路径：

使用旧版本iTunes，在公证处电脑上安装，登录Apple id，于iTunes的“应用”中搜索待取证应用，下载获取ipa安装包至电脑本地。

### 3、公证书需固定内容：

* 存证应用ipa；
    
* iTunes 12.1.3 64位安装包；
    
* PC端操作步骤截图word文档；
    
* PC内置操作录像；
    
* U盘；
    

### 4、大概的取证流程：

1. 电脑打开七麦网并登录，查阅待存证应用（下称应用X）相关信息（App id、应用上架时间、用户评论、下载次数等）；
    
2. 通过七麦链接，点击跳转至AppStore商店，查阅应用X相关信息，显示二者内容一致，与七麦展示信息关联起来；
    
3. 接入U盘，拷贝旧版本iTunes至电脑，查看iTunes旧版本安装包的数字签名、版权等信息，并安装在电脑上；
    
4. 登录Apple id，于iTunes中选择“应用”，输入应用X名称，检索查看相关信息，显示与前述内容一致；
    
5. 点击iTunes下载ipa安装包，本地打开路径，查看ipa属性（下载日期、包体版本等其他信息）；
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677426980750/5fc40225-0285-4178-91c9-9ccacd3cf0dc.jpeg align="center")

## **四、一些Q&A**

**Q：PC电脑上，为何我点击安装包后，提示我修复/重新安装或者卸载？**

A：该PC电脑此前已安装过iTunes，取证前应确认PC电脑环境，先退出原有iTunes账号登录记录，并卸载该iTunes包，以便旧版本安装包顺利安装。

**Q：为何卸载iTunes后，点击安装旧版本iTunes后，点击启动，系统弹窗提示“不能读取iTunes Library.itl，因为它是由更高版本的iTunes所创建的”？**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677427226032/fbfd0314-1c25-4837-9b2d-8e431a06ee5d.jpeg align="center")

A：该PC电脑此前安装过更高版本的iTunes，即便卸载后，C盘仍然有文件残留。取证之前，卸载原有iTunes后，前往该路径【C:\\Users\\（用户名 or Administrator）\\Music\\iTunes】，删除iTunes Library.itl。后续安装旧版本iTunes后，可以正常打开。

**Q：为何要通过外接U盘，导入旧版本iTunes？不能直接苹果官网或其他第三方渠道下载么？**

A：苹果官网，自2022年后，撤下了符合要求的iTunes版本下载链接，即便苹果提供了下载，其下载速度比较玄学，头铁的可以用一个上午的时间下载试试。第三方渠道，下载链接随时可能暴毙，后期面对质证会增加多余的解释麻烦，不如外接U盘的方式，直接导入目标iTunes应用。

**Q：iTunes的各个历史版本，苹果有提供下载么？**

A：历史版本iTunes，苹果官网有提供下载，网址：[https://support.apple.com/zh\_CN/downloads/itunes](https://support.apple.com/zh_CN/downloads/itunes%EF%BC%8C%E4%BD%86%E7%9B%AE%E6%A0%87iTunes%E7%89%88%E6%9C%AC%E7%8E%B0%E5%B7%B2%E4%B8%8B%E6%9E%B6%EF%BC%9B)，但目标iTunes版本现已下架；

**Q：使用iTunes是否都可以导出应用ipa？**

A：itunes 12.1.3 64位版本可提供导出应用ipa的功能，苹果官网现阶段提供的iTunes 12.4.3（Windows 版）（64 位，适用于较早的显卡），无法导出应用ipa。也有网友称，iTunes 12.6.3.6 x64 可以下载ipa，不妨试试。

**Q：降级！降级！我从苹果官网下载iTunes应用，降级到符合要求的版本，再下载应用X不行吗？**

A：不建议。头铁的可以试试。

### 参考链接

* [苹果的蛋糕好分么-iOS游戏切支付](https://www.jianshu.com/p/4a7026819b9e);
    
* [苹果30%佣金制太狠，游戏公司“切支付”绕行](https://zhuanlan.zhihu.com/p/62182534)；
    
* [为什么有的iOS应用不能用第三方支付？](https://www.jianshu.com/p/85412db79506)
    
* [如何用iTunes安装ipa文件](https://www.huifudashi.cn/article/an-zhuang-ipa.html)；
    
* [iTunes 应用商店下载 ipa app安装包文件教程](https://www.mfpud.com/topics/304/)；
    
* [iTunes 应用商店取消后, 如何获取App的ipa包](https://www.jianshu.com/p/ac81fa56b44c)；
    
* [iTunes 降级教程：用旧版 iTunes 进行 App 备份](https://zhuanlan.zhihu.com/p/29919942)；
    
* [总结iOS审核问题【长期更新】](https://www.jianshu.com/p/83d463c8761c)；
    
* [IOS审核被拒，被判定为应用内嵌入h5游戏](https://forum.cocos.org/t/ios-h5/55276)；
    
* [苹果App卡审原因猜测分析](https://www.jianshu.com/p/120196b01b61)；
    
* [解读 App Store 审核黑箱政策 —— 远没有你想象的那么邪恶](https://mp.weixin.qq.com/s?src=11&timestamp=1677408638&ver=4374&signature=CFtrUOIAV0yRllEok92-gWRnSFkv8ZCsSOnLexn5KfuTzceon5C3nETC1OxpcXeMVZBuZHcremYQbDSES8QRNgpuQMp1ipBS5tkFT7FxMTqcgGl2Zl9RWlePoyAI-Bj1&new=1)；
    
* [苹果马甲包应用上线经验总结](https://zhuanlan.zhihu.com/p/113436475)；
    
* [热更新及其原理](https://blog.csdn.net/m0_65912225/article/details/125059728?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167720967516800213086162%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167720967516800213086162&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-125059728-null-null.142%5Ev73%5Econtrol_1,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&utm_term=%E7%83%AD%E6%9B%B4%E6%96%B0&spm=1018.2226.3001.4187)；
    
* [一分钟搞懂app热更新](https://blog.csdn.net/weixin_44203158/article/details/124728451?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%83%AD%E6%9B%B4%E6%96%B0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-124728451.142%5Ev73%5Econtrol_1,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&spm=1018.2226.3001.4187)；
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677427187296/c338fa71-0d07-4517-969c-506aacb138ac.png align="center")
