优秀开源库集合:https://github.com/Tim9Liu9/TimLiu-iOS

转载至:http://paper.seebug.org/250/

项目地址: https://github.com/Naituw/IPAPatch
来源: http://weibo.com/ttarticle/p/show?id=2309404086977153611942
作者:Naituw

之前在 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 是如何实现类似需求的。 然后发现其实我们还能做到比抓包更进一步,对我自己很有用,所以也分享给大家~

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

IPAPatch: 免越狱调试、修改第三方App相关推荐

  1. 九州PTV8508优盘破解免固件刷入第三方app教程

    九州PTV8508优盘破解免固件刷入第三方app教程 与我现在工作的技术没啥关系,因为是自己亲自经历过的感觉挺不错的教程,就留下来吧 第一步:需要电视盒子,电脑,u盘 准备工作:下载ADB组件地址(h ...

  2. linux在线ipa签名,利用Cydia Impactor免越狱安装未签名APP教程 | ZMMOO

    许多第三方APP因不符合App Store政策因素,导致这些APP无法顺利上架,所以有些开发者为了将这些好用的APP包成ipa文件让用户自行安装,过去像是盘古越狱APP与模拟器APP都仅能通过这种方式 ...

  3. linux越狱80x24,用Cydia Impactor 免越狱安装未签名APP方法[日常] | 贝贝吧

    许多第三方APP因不符合App Store政策因素,导致这些APP无法顺利上架,所以有些开发者为了将这些好用的APP包成ipa文件让用户自行安装Cydia Impactor可以让用户在免越狱的情况下自 ...

  4. WPS简历模板的图标怎么修改_iPhone图标看腻了怎么办?教你免越狱一键修改苹果桌面图标!...

    Hello,大家好我是小姐姐 你还在嫌弃自己单调的手机屏幕吗? 快来尝试这款神奇创的APP 它可以让你把男神女神作为常用图标 贴到每天要看几百次的桌面主屏幕上 从此每次打开手机都享受心情愉悦 还觉得不 ...

  5. android tf卡及u盘_android8.1系统修改第三方app无法读写U盘或者内部SD卡的问题

    问题:rk3288 8.1系统上,第三方app即使动态申请了读写存储的权限依然不能读写U盘或者TF卡,这是因为第三方app对U盘或者TF卡路径是没有读写权限的,如果要能够读写一种方法是修改app为系统 ...

  6. asp.net 添加成功弹出个div提示_IOS12免越狱一键修改微信提示音

    所需工具:≥iPhone6S(A7-A12)(后台回复1105获取) 适用系统: iOS 12.0-iOS 12.1.2 哈喽大家好,欢迎来到蜜蜂科技f.经常刷抖音的同学应该知道,最近抖音挺火的一款苹 ...

  7. vissim免修改时间工具_App闪退怎么办?免越狱如何安装未签名的App?

    由于最近苹果大规模的封签名,导致在第三方渠道下载的软件都出现闪退没法使用的现象.目前的替代方法就是使用电脑端 Cydia Impactor 来给 App 进行自签,虽然相对比较麻烦,但这也是目前针对企 ...

  8. 免越狱!利用filza修改系统运营商名称!

    本期将给大家介绍如何使用filza文件管理器修改系统运营商名称.filza暂不稳定,可能会使用过程中闪退.重启等.并且filza在成功获取到系统权限后可能面临着不能还原手机等情况,请大家三思后操作!如 ...

  9. 苹果免越狱手机群控ios投屏中控技术

    全新技术研发无需越狱的苹果投屏控制软件使用苹果原厂投屏传输协议,手机画面可以随意放大和缩小,且能实现高清投屏. 功能方面可以实现点击.滑动.文字输入.复制粘贴.单控.同步群控.任意分组群控.快捷打开任 ...

最新文章

  1. 奔溃啦~有什么软件适合 Java 程序编写? | 每日趣闻
  2. 【原】iOS学习之UITabBar的隐藏
  3. html字体渐变颜色的设置颜色代码,使用CSS3实现字体颜色渐变的实现
  4. 《通过C#学Proto.Actor模型》之 HelloWorld
  5. 【2018.4.14】模拟赛之二-ssl2392 蚂蚁【图论】
  6. python的UnboundLocalError: local variable 'xxx' referenced before assignment
  7. 后缀数组 TYVJ P1860 后缀数组
  8. 智表ZCELL产品V1.4.0开发API接口文档 与 产品功能清单
  9. (54)Xilinx双沿原语-IDDR与ODDR(第11天)
  10. C语言实现单例模式,以及使用内存屏障的性能优化方案
  11. 收购小蓝单车部分资产、与ofo蜜月期结束,滴滴重构共享单车布局
  12. tensorflow线下训练SSD深度学习物体检测模型,C++线上调用模型进行识别定位(干货满满)
  13. Markdown语法 (中文版)
  14. 《51单片机应用开发从入门到精通》——1.3 Keil uVision2集成开发环境
  15. 大型石油公司联手银行推出能源商品交易区块链平台
  16. C++ 基本编程工具 DevCpp5.4.0 + 经典 VC6.0 | 软件分享 |
  17. IPv4头部结构详解
  18. 站在两个世界的边缘——知无崖
  19. 如何鉴别交换机的优劣好坏?您可以从这十方面去评判!
  20. antd vue 将表格导出为Excel

热门文章

  1. 逆元 与等比数列求和
  2. JAVA版不祥之兆等级怎么看,袭击队长 - Minecraft Wiki,最详细的官方我的世界百科...
  3. 2018最新破解pycharm安装过程(含注册码)
  4. 转载中国地理信息产业现状、问题与出路分析
  5. c语言15除以2得到8,C语言程序设计100例之(15):除法算式
  6. electron-builder打包见解
  7. 低码框架 json-script-rule 配置说明
  8. Android App开发之位图加工Bitmap中转换位图的像素色彩、裁剪内部区域、利用矩阵变换位图的讲解及实战(附源码和演示)
  9. H5C3新特性简单总结
  10. 在ubuntu16阿里云服务器上vnpy1.9.2连接老虎证券开放api以及裸api开发