前一段时间学了点儿逆向相关的一些东西,但是都是基于越狱手机上的操作,给视频类应用去广告之类的。随着苹果生态圈的逐渐完善、及苹果对自身系统的保护越来越严格,导致现在的iPhone手机并不像以前那样存在大量的越狱用户。

前段时间我自己申请了个微信小号,申请小号的目的就是原来微信号好友中乱七八糟的人实在太多,感觉自己的朋友圈都是一些无关紧要的垃圾信息,曾经关闭了一段时间的朋友圈,但是最近遇到了好多技术上很强的同行,还想了解大佬们的动态。

于是我就想着申请了个小号,但是麻烦来了,iPhone手机并不像安卓手机那样存在着微信多开之类的应用,将自己手机越狱吧成本太高,于是就想着通过技术手段安装多个微信,下面步入正题:

为什么要重签名

其实我们平时开发的App,程序运行主要就是加载一个Mach-o可执行文件。当我们将程序打包成ipa文件,上传到App Store的时候,期间就是进行了一些加壳操作,比如:数字证书签名等。重签名的目的就是将别人的程序重新签上我们的证书信息。也可以简单理解为将别人的加密文件解密,加上我们自己的加密算法。

逆向当中的一些专业术语

加壳:利用特殊算法(iOS中数字证书),对可执行文件的编码进行改变,以达到保护程序代码的目的

脱壳:摘掉壳程序,将未加密的可执行文件Mach-o还原出来

查看应用是否加壳

将下载好的ipa包解压缩之后,拿到里面的Mach-o文件,cd到所在目录,执行如下命令:

otool -l 可执行文件路径 | grep crypt

其中cryptid代表是否加壳,1代表加壳,0代表已脱壳。我们发现打印了两遍,其实代表着该可执行文件支持两种架构armv7和arm64.

查看应用支持哪种架构

终端下执行如下命令查看架构信息

lipo -info 文件路径

除了查看架构信息,还可以利用该指令导出某种特定架构、合并多种架构:

导出特定架构

lipo 文件路径 -thin 架构类型 -output 输出文件路径

合并多种架构

lipo 文件路径1 文件路径2 -output 输出文件路径

怎么给应用脱壳

给应用脱壳有两种途径:

一、直接从一些第三方应用商店里面下载你想脱壳的应用,例如:PP助手、iTools等

二、自己脱壳,利用GitHub上开源的一些工具,常用的有Clutch、dumdecrypted。具体如何使用,请自行Google

前期准备工作:

一台iPhone,越不越狱都行,开发者证书或者企业证书(个人账号也行,但是应用安装上之后,有效期只有7天)

电脑安装 iOS App Signer

其实重签名的方式有很多,比如:可以利用sigh resign命令,在终端下操作,还可以借助一些逆向相关的重签名工具,本文采用iOS App Signer

了解以上基本概念之后,下面正式开始史上最详细的重签名过程,以微信为例:

第一步:准备好脱壳后的微信App

我是直接从PP助手上下载的,感兴趣的可以自己手动脱壳

第二步:将对用的ipa文件解压,修改一些东西

注意:个人证书不能重签Extension文件,所以要删除ipa包中包含的相应文件,包括Watch里面的Extension,为了方便一般直接将Watch文件删除:

第三步:利用iOS App Signer给微信重签名

第一项:对应的.ipa或者.app路径

第二项:我们自己的签名证书

第三项:证书对应的Profile文件,默认项Re-Sign Only是无效的,选择证书下存在的Profile文件)

第四项:重签名之后的Bundle identifier(选择了Profile文件,一般会自动填写)

下面几项可以随便写

签名完毕之后对应的文件夹下会生成重签名之后的ipa包

注意:利用iOS App Signer重签名,在删除掉相应的Extension,选择路径的时候,一定要选择Payload文件夹下对应的.app文件,否则会报找不到Payload文件夹的错误:

安装重签名之后的微信

可以用PP助手安装,也可以用Xcode安装,我采用Xocde安装:

不出意外地话,第二个微信就成功的安装到了你的手机上。如果装不上的话,基本上大部分原因就是证书不对。。。

最终效果

多个证书可以多次重新签名,安装多个相同的应用;

这篇文章图有点儿多。。。。。

注意:重签名方式安装的微信,是对微信APP的一种破解,会被官方认定为非安全软件,有被封号的危险。但是这种方式对破解各种其他软件都是有用的,利用逆向相关的知识,我们可以利用这种知识做很多我们想做的事儿!!!(不要做非法的事情哈!)

遇到的坑

错误一:

解决办法:证书不对,仔细检查下证书

错误二

解决办法:删除ipa包里面的watch相关的文件

总结

过程其实很简单,我始终认为借助一些工具能完成的东西,都是很简单的,因为不需要敲代码。总算给自己iPhone装上了多个微信,原来还打算买个安卓手机呢,哈哈,给自己省了一大笔钱。。。

海马苹果助手ipad版_iOS逆向-ipa包重签名及非越狱手机安装多个微信!相关推荐

  1. iOS逆向-ipa包重签名及非越狱手机安装多个微信

    前一段时间学了点儿逆向相关的一些东西,但是都是基于越狱手机上的操作,给视频类应用去广告之类的.随着苹果生态圈的逐渐完善.及苹果对自身系统的保护越来越严格,导致现在的iPhone手机并不像以前那样存在大 ...

  2. 海马苹果助手ipad版_海马手机助手下载|海马手机助手 5.0.1 官方版

    相信这是一款很多人换新机子不会错过的软件,对于大部分用户来说,这款软件的好用程度简直可以说是惊喜的程度.那么问题来了,这简直是同类软件的噩梦啊,因为他,同类软件的生活显然不能说是舒服. 海马手机助手功 ...

  3. 海马苹果助手ipad版_海马助手app下载-海马苹果助手2020最新版下载v11.1.4

    这款海马助手软件是一款非常不错的手游辅助软件.用户可以在软件中一键安装非常多的手机游戏.软件的下载引擎很强大,并且不受任何的限制,让用户可以自由的下载.软件中还有着非常多的礼包,这些礼包可以帮助你提升 ...

  4. iOS证书及ipa包重签名探究

    iOS证书学习推荐博客代码签名探析,本文重点在于介绍ios8.1.3系统ipa包重签名(如企业证书)无法安装的问题.苹果在iOS8.1.3系统以后加强了对ipa安装包签名的验证,主要区别在于ipa唯一 ...

  5. iOS逆向(1)——利用ipa重签名,3分钟iPhone安装多个微信

    本文要达成如图效果,在一台iPhone上安装第二个微信: 准备: Xcode 微信ipa(可通过iTool进行下载) 重签名脚本 步骤 打开Xcode,新建Single View App项目,名字可以 ...

  6. iOS安全之ipa 包重签名的3种方法

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

  7. iOS逆向之自动化重签名

    iOS逆向之自动化重签名 准备工作 非越狱的iPhone手机 用PP助手下载: 微信6.6.5(越狱应用) 步骤 新建工程"自动化签名",在工程目录下新建APP文件夹放置需要重签名 ...

  8. 如何用未越狱手机安装ipa文件(更新版)

    前言 之前写过一篇非越狱手机安装ipa包的方法,然而现在已经不能用了,不仅会报警告"–resource-rules has been deprecated in Mac OS X >= ...

  9. 网络波动造成服务器文件系統损坏,快用苹果助手电脑版安装失败怎么办 安装失败解决方法...

    快用苹果助手电脑版是一款非常实用的苹果手机助手,今天我们就来讲讲快用苹果助手电脑版安装失败怎么办,下面通过这篇文章给大家介绍一下. 快用苹果助手PC版安装失败解决方法 1.下载到的文件损坏: 症状[文 ...

最新文章

  1. 你为什么应该经常访问招聘网站?招聘网站至少有4个方面的价值!
  2. linux清屏命令clear和reset
  3. 自动化测试工具selenium使用介绍
  4. html怎么让方块自动旋转,如何使用纯CSS实现一个圆环旋转错觉的动画效果(附源码)...
  5. all any 或 此运算符后面必须跟_好好跟大家聊聊,最全面的 Python 重点
  6. python实现微信小游戏打飞机代码
  7. Android开发原创教程
  8. 设备和驱动器中删除空白图标
  9. 大数据之编程语言:Scala视频教程-陈超-专题视频课程
  10. pdffactory字体模糊如何处理
  11. 【论文笔记】BMVC2009 Integral Channel Features
  12. 【数据挖掘算法】(一)MSET 算法
  13. 行测中数量关系的练习题集(07-29)【2】
  14. 免费U盘数据恢复软件有哪些,如何免费恢复U盘的数据
  15. 带有源代码的2020年20种最佳HTML5游戏模板
  16. TC8:UDP_MessageFormat_01-02
  17. 制造业MES生产管理系统程序代码 MES源码
  18. 自然语言理解(三)—— 逻辑形式语言
  19. 考研全流程,两年经验分享
  20. 求二叉树根节点到叶节点的所有路径

热门文章

  1. c#后台alert出来变乱码问题解决
  2. 【Java学习笔记之一】java关键字及作用
  3. 数据挖掘与数据化运营实战. 3.10 信用风险模型
  4. 使用的postman心得
  5. ahjesus 创建msdn一样的帮助文档
  6. js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期
  7. 计算机基础-软件梗概
  8. SpringCloud之声明式服务调用 Feign(三)
  9. springboot 应用程序的文件检索描述
  10. 《软件需求(第二版)》阅读笔记02