IPAPatch: 免越狱调试、修改第三方App

简介:

IPAPatch: 免越狱调试、修改第三方App

 

 

 

 

之前在 GitHub 上开源了关闭 Facebook for iOS 的 HTTPS 证书校验的方法 (Naituw/HackingFacebook),收到了很多反馈,大部分都集中在操作的过程太复杂的问题上。其实我自己在后来修改其他 App 的过程中也察觉,调试、验证问题的过程中,操作太过繁琐。


因此我又对这个方向做了进一步的尝试,最后 IPAPatch 诞生了~

源代码

我已经把模版工程放在了 GitHub 上了,欢迎大家提 Issue~

https://github.com/Naituw/IPAPatch

另外还包含一个 Demo

https://github.com/Naituw/IPAPatch/releases


IPAPatch 可以做什么呢?

和 "HackingFacebook" 类似,"IPAPatch" 主要可以在第三方的 IPA 文件上 "添加" 自己的代码,但过程有很大不同:


过程简单

提供 IPA 文件和你的代码,配置好签名信息,点击“运行”即可

整个过程在 Xcode 中进行,就像在编写自己的 App

IPA 文件依然需要是解密过的

在 Youtube 中弹出自定义窗口


支持调试

在 Xcode 中可以直接断点进行调试

可以用 lldb 命令(如 po),输出运行时信息

可以使用 Xcode 的调试功能查看 View Hierarchy、Memory Graph 等信息

使用 lldb 调试 Youtube


支持链接第三方 Framework

在集成一些第三方服务时很有用

例如之前发微博的 Reveal 调试 Youtube 就是这种方式

使用 Reveal 调试 Youtube


修改过的 App 可以与原始 App 共存,并自动修改名字以作区分

修改过的 Youtube 和 Facebook


怎么实现的?

主要的自动化过程在 patch.sh 这个脚本里,Xcode 会在把你的代码编译成 Framework 后执行这个脚本:

  1. 解压 IPA 文件
  2. 用 IPA 文件的内容,替换掉 Xcode 生成的 .app 的内容
  3. 通过 OPTOOL,将你代码生成的 Framework 及其他外部 Framework,注入到二进制文件中
  4. 对这些文件进行重新签名


完成后,Xcode 会自动将修改过的 .app 安装到 iPhone 上


具体的例子?

之前发过一个 “iOS 10.3 使用 Reveal 调试 Youtube” 的微博,我就用这个来举例吧。

使用 Reveal 调试 Youtube


1. 首先我们需要准备一个解密过的 Youtube IPA 文件,这个文件可以从越狱手机上导出,也可以直接去网站下载,比如我自己常用的是 iphonecake.com

2. 将 IPA 文件命名为 app.ipa,替换模版工程中的 Assets/app.ipa 文件

3. 打开 Reveal,拿到需要集成的 Framework 文件



4. 将 RevealServer.framework 放置在 Assets/Frameworks/RevealServer.framework

5. 打开 IPAPatch,在 IPAPatch-DummyApp 这个 Target 里,配置好 BundleID 和代码签名。Display Name 会作为前缀添加到原来的 App 上,如图配置的话最后就是 "RevealYoutube"


6. 点击 Xcode 左上角的编译运行按钮,修改好的 Youtube 就会安装到手机上,Reveal 中也能找到




我把这个 Demo 打了一个包,传到 GitHub 的 Release 中了,大家可以自行下载尝试~

https://github.com/Naituw/IPAPatch/releases


后记

其实做这个项目的起因,并不是想要对其他 App 进行修改,而是在竞品分析时,想尽可能了解其他 App 是如何实现类似需求的。 然后发现其实我们还能做到比抓包更进一步,对我自己很有用,所以也分享给大家~

最后还是想说一句,该项目仅用于学习目的,请勿滥用~


项目地址:https://github.com/Naituw/IPAPatch

 

 

 

本文来自合作伙伴“阿里聚安全”,发表于2017年03月20日 13:36.

相关文章
|
6月前
|
API 开发工具 Android开发
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
146 0
|
4月前
|
安全 Java Android开发
Android App开发之安全加固中反编译、代码混淆、第三方加固以及重签名的讲解及实战(图文解释 简单易懂)
Android App开发之安全加固中反编译、代码混淆、第三方加固以及重签名的讲解及实战(图文解释 简单易懂)
70 0
|
6月前
|
数据安全/隐私保护 Android开发 iOS开发
解决第三方邮箱APP登陆QQ、163邮箱无法验证账户名或密码的问题(IOS、MacOS、Windows、Android)
解决第三方邮箱APP登陆QQ、163邮箱无法验证账户名或密码的问题(IOS、MacOS、Windows、Android)
109 0
|
7月前
|
Shell 开发工具
关于 SAP Spartacus Shell App 客户应用的调试
关于 SAP Spartacus Shell App 客户应用的调试
32 0
|
7月前
|
网络安全 iOS开发 开发者
frida环境配置、以及如何脱壳iOS包并安装到非越狱设备-制作iOS任意App分身
frida环境配置、以及如何脱壳iOS包并安装到非越狱设备-制作iOS任意App分身
964 1
|
8月前
|
Web App开发 移动开发
Crack App | 【填坑】某 H5 app 的反调试绕过(Frida 与 Xposed 双版本)
Crack App | 【填坑】某 H5 app 的反调试绕过(Frida 与 Xposed 双版本)
195 0
|
10月前
|
Android开发
OPPO手机调试Android Flutter APP时每次都要提示重新安装且不能hot reload
OPPO手机调试Android Flutter APP时每次都要提示重新安装且不能hot reload
|
开发者
苹果证书(免费) + 打包ipa + 上传app store在Hbuilder里面打包ipa包到没越狱的手机上安装时,是需要p12文件跟.mobileprovision的证书的,这里可以超简单不需要
苹果证书(免费) + 打包ipa + 上传app store在Hbuilder里面打包ipa包到没越狱的手机上安装时,是需要p12文件跟.mobileprovision的证书的,这里可以超简单不需要
苹果证书(免费) + 打包ipa + 上传app store在Hbuilder里面打包ipa包到没越狱的手机上安装时,是需要p12文件跟.mobileprovision的证书的,这里可以超简单不需要
|
编译器 iOS开发
IOS越狱开发(二)———APP开机自动启动并隐藏图标
IOS越狱开发(二)———APP开机自动启动并隐藏图标
247 0
IOS越狱开发(二)———APP开机自动启动并隐藏图标
|
Web App开发 移动开发 JavaScript
H5页面拉起第三方App
H5页面拉起第三方App
752 0
H5页面拉起第三方App

热门文章

最新文章