美文网首页
iOS 应用重签名

iOS 应用重签名

作者: 裸奔的蜗牛z | 来源:发表于2019-10-17 19:31 被阅读0次

    本文我们将重签名一个App,实现将他人的App安装到自己手机上,然后进行部分的调试工作。

    需要准备的资料:

    1、安装PP助手Mac版本。

    2、一台iPhone手机。

    3、Xcode工具。

    1、拔掉连接在电脑上的手机,打开PP助手,下载微信越狱包。

    下载微信越狱包

    2、等到下载完成我们到下载的位置会看到一个类似于微信-7.0.5(越狱应用).ipa的包。

    3、右键打开下载好的微信-7.0.5(越狱应用).ipa包,如果您的系统为macOS Catalina(10.15)版本可能会无法打开,我们可以打开终端,实用unzip解压,然后就能看到微信的包了。

    命令行解压 解压完成后

    3.1、然后我们查看WeChat包内容,查看是否有WeChat可执行文件。

    可执行文件

    3.2、由于后续我们要对微信的包进行重签名,但是插件以及Watch的包我们是无法进行重签名的,所以我们先删除了插件以及Watch

    插件 Watch

    将这两个文件删除。

    4、查看一下证书是否生成成功,个人证书就够用了(我这是最新版的Xcode 11.1,可能界面会有所差异)。

    证书界面

    5、电脑连接上真机,选择真机,然后将项目运行到真机上面(这一步是为了先将我们的证书放到真机上面,为后续的安装微信做准备)。

    自主选择真机

    如果您是最新版的Xcode(但是手机却不是iOS 13),运行到手机上可能会黑屏,这是由于SceneDelegate导致的,这里提供一个解决办法,在AppDelegate头文件里面添加一个window即可。

    解决黑屏问题

    6、查看一下自己运行后的包内容,打开终端,cd到包的路径。

    查看方式 查看指令 这个就是我们的签名证书

    然后我们再次确认一下证书,查看下电脑上我们所有的支持的证书

    所有证书

    确实是有我们所想的证书,复制一下这个证书放到备忘录或者其他地方备用(后续签名要用,避免麻烦)。

    7、对Frameworks里面的库进行重签名

    7.1、打开WeChat的包,找到里面的Frameworks,使用终端cd到这个目录,我们看到它有这些framework。

    包含的framework

    7.2、对framework一个个的重签名

    重复调用Codesign –fs “证书串”  文件名,对Framework一个个的进行重签名(后期会通过shell脚本做)。

    红框为上一步找到的证书名字

    8、对WeChat文件添加可执行权限(一般会有可执行权限,加一下保险)。

    cd 到上一个目录,然后使用chmod +x 为WeChat添加执行权限

    添加权限执行

    9、微信包里面是没有描述文件的,我们需要将我们自己写的工程的描述文件添加到微信包里面,使iPhone认为微信是我们自己开发的App,按照第七步找到我们的App包,显示包内容,将下图的文件复制到微信的包里面。

    自己的描述文件 添加到微信包里

    10、修改微信的BundleID

    找到微信包里的info文件,修改BundleID为我们自己工程的BundleID。

    修改BundleID

    11、查看一下我们刚刚得到那个描述文件

    查看命令 查看结果

            我们找到查看后的这一部分,其中的dict内容是我们要用于对app重签名使用的东西,复制一份备用。

            在Xcode中创建一个plist文件,随便起个名字就好,右键Open As -> Source Code,然后将上面的内容复制进去。

    步骤 最终结果

    不要复制多了。

    11.2、最好将微信的包和上面生成的文件放到一个目录里面,方便后续操作。

    放一起

    然后对微信的包进行重签名:

    codesign -fs “证书串” --no-strict --entitlements=权限文件.plist APP包

    重签名微信包

    12、将微信包安装到手机上

    步骤一 步骤二

    将处理好的微信包拖到上图2的位置,过一会就会提示是否替换原来的app,选择替换,手机上就会显示出来安装好的微信了。

    安装完成

    信用一下证书,我们就可以正常打开我们自己安装的微信了。

    13、选择debug依附调试安装的微信

    依附

    最终结果图示

    最终结果

    其中我们可以看到按钮的Anction,后续就可以通过hook技术对注册或者其他的部分做自己想做的事了。

    补充说明:

    其中的Action为一个字典,这是Xcode11之后的变更,po地址,然后再po字典的value就好了。

    po地址

    总结

            整个篇幅下来实际上感觉还是比较麻烦,有个小细节出错可能会导致不能重签名不成功,还有两种相对简单的方式去去除一些比较麻烦的操作,一个是shell脚本,一个是直接替换,后续再更新

    相关文章

      网友评论

          本文标题:iOS 应用重签名

          本文链接:https://www.haomeiwen.com/subject/xvdvmctx.html