iOS逆向必备绝技之ipa重签名
一、重签名准备工作:
- 找到开发者证书和配置文件:
列出所有开发者证书文件:
security find-identity -p codesigning -v

- 找一个开发环境配置文件生成entitlements.plist文件,后面签名要用到:
|
security cms -D -i XX.mobileprovision > profile.plist
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' profile.plist > entitlements.plist
cat entitlements.plist
|
- 把准备好的开发环境配置文件复制到XX.app文件夹下:
cp XX.mobileprovision Payload/XX.app/embedded.mobileprovision
- 修改包Info.plist中的Bundle Identifier与配置文件中的Bundle Identifier保持一致:
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.XX.XX" Payload/XX.app/Info.plist
- 移除之前的签名文件夹:
rm -rf Payload/XX.app/_CodeSignature
二、iOS重签名:
- 重签名framework:
/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist /Payload/XX.app/Frameworks/JSONModel.framework
- 重签名app执行文件:
/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist Payload/XX.app/XX
- 查看app签名信息:
codesign -vv -d Payload/XX.app
注意:重签名有顺序,先把framework和dylib签名,最后再签名:XX.app/XX,顺序弄错了,就算签名成功也可能会安装失败!
三、调试和打包:
- ios-deploy安装与调试:
ios-deploy -d -b Payload/XX.app
出现如下success字样,就证明成功了!

过程中如果遇到错误提示:“Error 0xe8000067: There was an internal API error. AMDeviceSecureInstallApplication(0, device, url, options, install_callback, 0)”
错误原因:可能存在有framework或者dylib未签名的情况。
解决方案:把app文件夹下面的framework全部签名。
- 打包(package):
|
zip -qry ppdest.ipa Payload
rm -rf Payload/
|
四、iOS重签名工具介绍:
- 用iOS App Signer重签名:

- 用iResign重签名:

五、参考资料地址:
iOS逆向必备绝技之ipa重签名的更多相关文章
- iOS ipa 重签名 resign
这篇关于codesign的文章不错 https://www.objccn.io/issue-17-2/ 英文原文:https://www.objc.io/issues/17-security/insi ...
- ipa重签名最直接的教程
ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 appkey 等操作,直接重签名之后依然可以拥有这些功能,更快的发布测试或者灰度版本. 本 ...
- iOS逆向(五)-ipa包重签名
为什么要重签名? 1.在没有源代码的情况下,你已经对某个应用进行了资源修改(比如修改了启动图或图标等).修改完成以后,如果想要让APP可以正常使用,该APP一定要重新签名然后压缩成IPA文件. 2.如 ...
- ipa重签名
为什么要研究重签名问题?将程序打包成ipa包后,ipa包中会包含Provisioning Profile和_CodeSignature等文件,里面包含了对整个ipa的签名信息. 一旦改动ipa中的不论 ...
- iOS ipa包重签名
背景:公司做游戏SDK的,提供SDK给第三方后,他们打包过来我们需要分发在不同的渠道,这个时候需要修改SDK的配置文件,ipa文件修改后是需要手机越狱或者ipa重签名才能安装成功的,所以研究了一下重签 ...
- ios app 开发中ipa重新签名步骤介绍-备
作为一个app应用程序开发者,在app应用程序在苹果商店上架前总需要将安装包安装到ios机器上进行测试,这个时候我们就需要打包in house版本的ipa了,打包in house实际上是一个将ipa应 ...
- iOS 修改打包后的.ipa应用名字
一.修改应用的名字 二.重新签名 下面详细介绍介绍两个步骤: 1.修改应用的名字: 1).解压.ipa文件,在Payload文件夹下有一个.app文件(如下图:)选中.app文件,右键点击“显示包内容 ...
- ipa 重签
IPA 重签名 时间 2014-03-03 10:28:36 txx's blog原文 http://blog.rpplusplus.me/blog/2014/03/03/ipa-re-codes ...
- iOS逆向开发(0):修改二进制代码与重签名 | hopper | codesigh
小白:小程,你知道有些iOS程序是没人性的吗?老是不按我的意愿来运行! 小程:我怎么知道你的意愿就是有人性的? 本文解决一个问题:修改别人的二进制程序并运行起来. 让别人的程序按你的意愿来运行,文明一 ...
随机推荐
- Java的常见术语(PO/POJO/VO/BO/DAO/DTO)
PO(persistant object) 持久对象在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库 ...
- Tessy — 嵌入式软件单元测试/ 集成测试工具
Tessy 源自戴姆勒- 奔驰公司的软件技术实验室,由德国Hitex 公司负责全球销售及技术支持服务,是一款专门针对嵌入式软件进行单元/ 集成测试的工具.它可以对C/C++ 代码进行单元.集成测试,可 ...
- php解释器模式( interpreter pattern)
... <?php /* The interpreter pattern specifies how to evaluate language grammar or expressions. W ...
- “IOS11不再信赖WOSIGN证书”公众号运营者如何应对
ptd->_thandle = (uintptr_t)(-1); {{}/*** 传入需要的参数,设置给*/{}给Fragment添加newInstance方法,将需要的参数传入,设置到bund ...
- 用JAVA实现找出输入字符串中的出现次数最多的字符及其次数;
//通过Map 类实现,通过键值对的方式,可以将输入的字符串的每一个字符,作为键,每个字符出现的次数作为值:如下: public class Find { public static void mai ...
- Beyond Compare设置自定义过滤
Beyond Compare是一款优秀的专业级文件比较软件,利用它可以快速比较出文件之间的差异,以便于修改.整合.其中较强大的功能之一就是文件夹比较,面对海量的子文件夹以及文件,Beyond Comp ...
- 使用idea创建项目如何忽略iml文件
在图中圈出的输入栏中输入“*.iml;”,点下OK就可以了,如图进入idea项目窗口,如图 点下file,进入file菜单窗口,如图 点下settings,进入到settings窗口,如图 在输入框f ...
- 云打印 对Echo的Beta产品测试报告
云打印 对Echo的Beta产品测试报告 课程名称:软件工程1916|W(福州大学) 团队名称: 云打印 作业要求: 项目Beta冲刺(团队) 作业目标:作业集合 团队队员 队员学号 队员姓名 个人博 ...
- 关于ArrayList
List概述 List是一个列表结构抽象定义,有序的,可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素.包括函数的有:添加元素,删除元素,判断是否包含元素等等重要函数. ...
- JSE,JEE,JME三者之间有什么区别
JAVA是一种面向对象语言由SUN公司出品 J针对不同的使用方向规划出J2SE,J2EE,J2ME三个版本 J2SE 指标准版一般用于用户学习JAVA语言的基础也是使用其他两个版本的基础主要用于编写C ...