iOS微信分身版制作

昨天看了一篇关于iOS 逆向学习的笔记,突然大感兴趣,想制作微信分身版,以达到一个手机上可以装多个微信的目的,昨天折腾了一下午,在博主心董儿的帮助下终于大功告成,实现了微信分身版的制作,感谢心董儿。在此记录下这无聊的过程。

iOS微信分身版制作_第1张图片
iTruda.png

1.目的

在手机不越狱的情况下,实现一个手机装多个微信。

2.准备工作

Mac电脑(装Xcode),PP助手(Mac版),** **ios-app-signer(很好用的签名工具)

3.开始制作

(1)到PP助手官网下载PP助手(Mac版),下载完成后安装打开PP助手(不要连接手机),到应用游戏模块下选择越狱应用,然后搜索微信(目前最新版本v6.5.8)并下载ipa文件到本地。
(2)加压缩下载好的微信ipa文件,可以通过命令 "unzip weChat.ipa"解压,也可以右键选择打开方式用归档实用工具解压,解压后可拿到 weChat.app 文件。接下来用命令 "otool -l WeChat.app/WeChat | grep -B 2 crypt" 可以验证是否已解密。结果如下:

cmd LC_ENCRYPTION_INFO    // armv7架构
cmdsize 20
cryptoff 16384
cryptsize 52871168
cryptid 0    // 0代表解密、1代表加密
--
cmd LC_ENCRYPTION_INFO_64    // arm64架构
cmdsize 24
cryptoff 16384
cryptsize 56901632
cryptid 0    // 0代表解密、1代表加密

(3)右键weChat.app选择显示包内容,找到WatchPlugins文件夹并删除。
(4)打开Xcode新建一个空白工程,选择你的开发者证书(此证书必须和后面进行重新签名时的一致),并修改工程的Bundle identifier (此ID就是后面你要制作微信分身版的BundleID,必须和后面用到的要一致,否则会安装失败),连接手机,然后 command+r 运行一下程序(运行结束后删除手机里的此APP),在工程目录Products文件夹下有一个文件wechat2.app(工程名.app),右键 Show in Finder,找到文件后右键显示包内容,进去后找到embedded.mobileprovision文件(就是刚刚生成的),复制粘贴到桌面一份和步骤(3)weChat.app的包内一份。
(5)在桌面新建一个Payload文件夹,在文件夹里放入处理好的weChat.app(就是步骤3中的),压缩Payload文件夹,可用命令 "zip -qry weChat.ipa Payload/" 压缩,也可手动压缩后更改后缀为weChat.ipa。
(6)接下来进行重新签名。下载ios-app-signer(很好用的签名工具)代码,并运行,会有如下结果:

iOS微信分身版制作_第2张图片

点击 Start 开始重新签名,并生产新的微信ipa包。
(7)双击生成的微信ipa,会自动弹出iTunes,连接手机,点击手机图标,选择应用,点击安装,同步,此时电脑上新的微信ipa会安装到手机,大功告成。
因为更换了Bundle Identifer,所以分身版的微信无法收到推送通知和分享跳转等。
如果要制作多个,只需要把之前工程中的Bundle Identifer做修改,运行生成embedded.mobileprovision文件,重复以上步骤即可。

4.填坑

折腾了一下午,总结一下遇到的坑,希望能给后面的同学打个预防针。
(1)签名的时候Bundle Identifer必须和新建工程中的Bundle Identifer一致;
(2)签名的时候选择的证书必须和新建工程中的证书一致;
(3)weChat.app包内必须删除WatchPlugins文件夹,并添加新建工程中生成的 embedded.mobileprovision 文件。
(4)签名的时候选择的 mobileprovision 文件必须和放在weChat.app包内的一致。
(5)以上如果有一个不正确,都会导致安装失败。


下面是我制作的3个微信分身,第一个是AppStore下载的,第四个是做了点小改动,把微信的icon更换了。


你可能感兴趣的:(iOS微信分身版制作)