×

iOS APP重签名

96
XPorter
2016.09.22 16:04* 字数 572

这篇文章以目标为:
实现安装两个app,也就是修改info.plist中的Bundle identifier

对app重签名推荐使用iOS_resign_scripts,下载下来之后会有三个命令,对应不同的场景,接下里以第一个为例。

1.准备材料

开始之前需要准备:

  1. 有效的证书(可以在钥匙串中查找)

  2. mobileprovision 文件,可以在xcode中找一个有效的,
    右键 show in finder,将文件复制出来,重命名为embedded.mobileprovision,备用

    Paste_Image.png

  3. ipa包
    ipa包可以通过itunes下载,下载之后在这个路径下


    ipa
  4. 脱壳的二进制文件,decrypted文件,ipa脱壳看这里,脱壳得到的是一个.decrypted的文件,需要去掉后缀。

现在我们已经得到了所有想要的东西。

材料

如果你的二进制文件看起来跟我的不一样?没关系,只是权限问题,想改的话可以试试用修改下权限

chmod 777  WeChat

2.开始修改内容并重签名

既然想要安装两个同样的app,那就修改Bundle identifier,接下来的步骤就没什么好说的了

解压ipa -> 找到APP文件,右键显示包内容 -> 找到info.plist文件 -> 修改Bundle identifier

再将脱壳的二进制文件复制进来,替换原来的二进制文件。修改工作就做好了,可以签名了!

接下来用iOS_resign_scripts 进行重新签名。

$ ios_resign_from_app_to_ipa app-extracted $Developer_code_sign $mobileprovision $target_ipa_related_path

app-extracted 是个文件夹,可以直接把解压的到的文件夹重命名成app-extracted

$ ls app-extracted
META-INF             Payload              iTunesArtwork        iTunesMetadata.plist

签名完成之后会得到一个ipa文件,这个就是破解重签名的ipa了,可以用itools等工具进行安装测试。

这里会有一个问题,如果app中包含了扩展之类的东西就需要注意了,每个插件包里都会有一个info.plist文件,里面的Bundle identifier也需要做相应的修改,不然后导致安装失败。

另外即使改了所有相关的Bundle identifier,还需要对扩展插件进行砸壳才行。所以为了方便,我就把所有插件相关的东西都删了!

分享扩展
watch

再次打包重签名,安装测试。终于可以了!

成果
iOS逆向工程
Web note ad 1