一、重签名准备工作:

  • 找到开发者证书和配置文件:

列出所有开发者证书文件:

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 -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逆向必备绝技之ipa重签名的更多相关文章

  1. iOS ipa 重签名 resign

    这篇关于codesign的文章不错 https://www.objccn.io/issue-17-2/ 英文原文:https://www.objc.io/issues/17-security/insi ...

  2. ipa重签名最直接的教程

    ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 appkey 等操作,直接重签名之后依然可以拥有这些功能,更快的发布测试或者灰度版本. 本 ...

  3. iOS逆向(五)-ipa包重签名

    为什么要重签名? 1.在没有源代码的情况下,你已经对某个应用进行了资源修改(比如修改了启动图或图标等).修改完成以后,如果想要让APP可以正常使用,该APP一定要重新签名然后压缩成IPA文件. 2.如 ...

  4. ipa重签名

    为什么要研究重签名问题?将程序打包成ipa包后,ipa包中会包含Provisioning Profile和_CodeSignature等文件,里面包含了对整个ipa的签名信息. 一旦改动ipa中的不论 ...

  5. iOS ipa包重签名

    背景:公司做游戏SDK的,提供SDK给第三方后,他们打包过来我们需要分发在不同的渠道,这个时候需要修改SDK的配置文件,ipa文件修改后是需要手机越狱或者ipa重签名才能安装成功的,所以研究了一下重签 ...

  6. ios app 开发中ipa重新签名步骤介绍-备

    作为一个app应用程序开发者,在app应用程序在苹果商店上架前总需要将安装包安装到ios机器上进行测试,这个时候我们就需要打包in house版本的ipa了,打包in house实际上是一个将ipa应 ...

  7. iOS 修改打包后的.ipa应用名字

    一.修改应用的名字 二.重新签名 下面详细介绍介绍两个步骤: 1.修改应用的名字: 1).解压.ipa文件,在Payload文件夹下有一个.app文件(如下图:)选中.app文件,右键点击“显示包内容 ...

  8. ipa 重签

    IPA 重签名 时间 2014-03-03 10:28:36  txx's blog原文  http://blog.rpplusplus.me/blog/2014/03/03/ipa-re-codes ...

  9. iOS逆向开发(0):修改二进制代码与重签名 | hopper | codesigh

    小白:小程,你知道有些iOS程序是没人性的吗?老是不按我的意愿来运行! 小程:我怎么知道你的意愿就是有人性的? 本文解决一个问题:修改别人的二进制程序并运行起来. 让别人的程序按你的意愿来运行,文明一 ...

随机推荐

  1. Django 之 Form 组件

    常用功能 From 组件主要有以下几大功能: 生成 HTML 标签 验证用户数据(显示错误信息) HTML Form 提交保留上次提交数据 初始化页面显示内容 小试牛刀 下面我们通过 Form 组件来 ...

  2. Jmeter 使用badyboy 录制脚本

    在使用jemeter 做测试时,一般需要先录制脚本,这个过程可以通过手工添加采样器进行采样. 比较方便的方法是使用badboy 来录制脚本录制完脚本后使用jemeter 再做压力测试,大大加快测试进度 ...

  3. 如何将Android的AOSP仓库放置到自己的gitlab服务器上?

    平台 Ubuntu 18.04 GitLab Community Edition 11.11.0   参考 https://source.android.google.cn/   概述     git ...

  4. 【解决】Error: ENOSPC: no space left on device, watch

    发现问题: 启动 node 项目ReactNative时候出现报错Error: ENOSPC: no space left on device, watch [root@iz2zeihk6kfcls5 ...

  5. C++学习(5)—— 内存的分区模型

    C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值.局部变量等 ...

  6. 使用tensorflow时,关于GPU的设置

    查看显卡使用情况: nvidia-smi 设置tensorflow按需分配资源: import os os.environ["CUDA_DEVICE_ORDER"] = " ...

  7. VisualVM的插件中心已经迁移至GitHub

    VisualVM是一款免费的集成了多个JDK命令行工具的可视化性能分析工具,而且目前已经被JDK包含了,取名为:jvisualvm .如果你是一名Javaer,强烈建议你能够使用它,因为它不仅能生成和 ...

  8. jQuery扩展$.fn、$.extend jQery命名方法扩展 练习总结

    <script> $.fn.hello = function(){  //扩展jQuery实例的自定义方法,基于$.fn的jq方法扩展     this.click(function(){ ...

  9. React中组件通信的几种方式

    https://segmentfault.com/a/1190000012361461 需要组件之进行通信的几种情况 父组件向子组件通信 子组件向父组件通信 跨级组件通信 没有嵌套关系组件之间的通信 ...

  10. xunit.core 控制台输出日志

    参考链接: https://www.cnblogs.com/dudu/p/9391959.html http://landcareweb.com/questions/15813/xunit-netbu ...