美文网首页
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开发逆向之应用重签名(上)

    本文主要介绍重签名的几种方式,以及如何对应用进行重签名, 应用重签名 从之前《iOS逆向应用签名》中可知,签名是指...

  • 通过Shell脚本对应用重签名

    通过上两篇文章(iOS 应用重签名|使用Xcode简化应用重签名)对操作应用的重签名有了一定的认识,但是好像每次都...

  • iOS应用重签名

    网上关于签名的脚本有很多,我找了个本人觉得比较好用的脚步iOS_resign_scripts,下载脚步里面有三个脚...

  • iOS应用重签名

    代码重签名 签名机制 iOS签名需要用到codesign这个命令,了解这个命令的用法可以增加我们对签名机制的了解 ...

  • iOS 应用重签名

    本文我们将重签名一个App,实现将他人的App安装到自己手机上,然后进行部分的调试工作。 需要准备的资料: 1、安...

  • iOS应用重签名

    一、越狱版应用重签名(正版的需要砸壳,这个以后介绍) 应用重签名需要以下几个步骤: 删除插件和带有插件的.app包...

  • iOS应用重签名

    说到iOS重签,那么就应该了解iOS正常签名流程是什么,然后才能知道,我们重签名从哪几个地方入手。 iOS签名 代...

  • iOS应用重签名

    codesign Xocde提供了签名工具,codesign,我们通过几个命令就可以完成重签名 •$securit...

  • iOS 应用 重签名

    前言 在逆向过程中,当我们对IPA包发生改动时,就需要对IPA包进行重新签名,才可以重新安装到我们的iOS设备中。...

  • iOS应用重签名

    知识点准备 MacOS用户组 文件权限Unix Linux 属于多用户、多任务 我们关注第一列(权限):eg:dr...

网友评论

      本文标题:iOS 应用重签名

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