本文我们将重签名一个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可执行文件。
插件 Watch3.2、由于后续我们要对微信的包进行重签名,但是插件以及Watch的包我们是无法进行重签名的,所以我们先删除了插件以及Watch
将这两个文件删除。
4、查看一下证书是否生成成功,个人证书就够用了(我这是最新版的Xcode 11.1,可能界面会有所差异)。
证书界面
5、电脑连接上真机,选择真机,然后将项目运行到真机上面(这一步是为了先将我们的证书放到真机上面,为后续的安装微信做准备)。
自主选择真机解决黑屏问题如果您是最新版的Xcode(但是手机却不是iOS 13),运行到手机上可能会黑屏,这是由于SceneDelegate导致的,这里提供一个解决办法,在AppDelegate头文件里面添加一个window即可。
6、查看一下自己运行后的包内容,打开终端,cd到包的路径。
查看方式 查看指令 这个就是我们的签名证书所有证书然后我们再次确认一下证书,查看下电脑上我们所有的支持的证书
确实是有我们所想的证书,复制一下这个证书放到备忘录或者其他地方备用(后续签名要用,避免麻烦)。
7、对Frameworks里面的库进行重签名
包含的framework7.1、打开WeChat的包,找到里面的Frameworks,使用终端cd到这个目录,我们看到它有这些framework。
红框为上一步找到的证书名字7.2、对framework一个个的重签名
重复调用Codesign –fs “证书串” 文件名,对Framework一个个的进行重签名(后期会通过shell脚本做)。
8、对WeChat文件添加可执行权限(一般会有可执行权限,加一下保险)。
cd 到上一个目录,然后使用chmod +x 为WeChat添加执行权限
添加权限执行9、微信包里面是没有描述文件的,我们需要将我们自己写的工程的描述文件添加到微信包里面,使iPhone认为微信是我们自己开发的App,按照第七步找到我们的App包,显示包内容,将下图的文件复制到微信的包里面。
自己的描述文件 添加到微信包里10、修改微信的BundleID
修改BundleID找到微信包里的info文件,修改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依附调试安装的微信
依附
最终结果最终结果图示
po地址其中我们可以看到按钮的Anction,后续就可以通过hook技术对注册或者其他的部分做自己想做的事了。
补充说明:
其中的Action为一个字典,这是Xcode11之后的变更,po地址,然后再po字典的value就好了。
总结
整个篇幅下来实际上感觉还是比较麻烦,有个小细节出错可能会导致不能重签名不成功,还有两种相对简单的方式去去除一些比较麻烦的操作,一个是shell脚本,一个是直接替换,后续再更新
网友评论