iOS重签名(手动签名)

1、准备工作

  • 1.1获取破壳的ipa包

借助PP助手下载越狱的IPA包,一般的APP在上面都是有的。点击下载可以找到对应的ipa包。(小坑:本来连着手机,没有下载两个字,只有安装。纠结半天。。后来把手机退了就OK了)


iOS重签名(手动签名)_第1张图片
PP助手截图
  • 1.2右键解压出app文件,这里以微信为例
iOS重签名(手动签名)_第2张图片
WeChat.app

利用命令查看是否破壳 (codesign -vv -d 文件名)

$ codesign -vv -d WeChat.app
iOS重签名(手动签名)_第3张图片
已破壳

附加一张正版的执行结果图


iOS重签名(手动签名)_第4张图片
正版
  • 1.3 查看可执行文件的加密信息

cd到app文件里面

$ cd WeChat.app/

执行命令

$ otool -l WeChat | grep crypt
iOS重签名(手动签名)_第5张图片
执行结果

cryptid==0越狱应用 cryptid==1未越狱应用 不可用!

  • 1.4 开发者证书&描述文件
    通过本地CSR证书获取开发者证书,并安装到钥匙串(具体步骤就不演示了,自行百度)
    执行命令查看本机证书列表
$ security find-identity -v -p codesigning

随便创建一个工程,选择好证书之后,连接真机编译。


工程

找到生成的app目录,show in finder -->显示包内容(内含描述文件)

2、进入正题

  • 2.1 删除插件(在网上那些所谓的多开软件都是将此删除掉的)

右键显示包内容
将所有插件和watch.app删除


iOS重签名(手动签名)_第6张图片
插件

iOS重签名(手动签名)_第7张图片
watch.app
  • 2.2 对FrameWorks进行签名


    iOS重签名(手动签名)_第8张图片
    image.png

对 .app文件中 Framework 文件夹中库进行重签名,(没有的跳过)

重签名命令(codesign -fs "证书" 需要签名的文件)

$ codesign -fs "iPhone Developer: xxx (4N7XH2PX6N)"  xxx.framework

注:有几个文件就要执行几遍,即对framework依次进行重签名!
下面是获取证书名字的地方


iOS重签名(手动签名)_第9张图片
证书名字
  • 2.3 给可执行文件执行权限
$ chmod +x WeChat
执行后变成可执行文件
  • 2.4 拷贝描述文件
    将上面备用的描述文件拷贝到WeChat.app文件中。

  • 2.5修改info.plist中的Bundle ID
    将info.plist 文件中的Bundle ID拷贝,将WeChat中的info.plist中的Bundle ID替换

  • 2.6 生成plist权限文件
    查看拷贝进来的描述文件(security cms -D -i 描述文件名)

$ security cms -D -i embedded.mobileprovision
iOS重签名(手动签名)_第10张图片
权限文件

将权限文件复制,然后在xcode中生成一个plist文件,并复制到WeChat的同目录下。如图


iOS重签名(手动签名)_第11张图片
效果图
  • 2.7 签名整个APP!
$  codesign -fs "iPhone Developer: xxx (4N7XH2PX6N)" --no-strict --entitlements=lc.plist WeChat.app
签名成功
  • 2.8 生成ipa包(或者右击直接改后缀为zip)
    记得cd到上一级路径(payload的上一级) 执行命令(zip -ry 自定义名字.ipa Payload)
$ zip -ry WeChat.ipa Payload

最后通过Xcode或者其他方式将ipa包装到自己手机就OK了。亲测可用,手动签名成功

注:很多地方需注意cd的路径位置,没有表明很清楚

第一次认真的写文章,想尽可能的写详细点。

你可能感兴趣的:(iOS重签名(手动签名))