微信小视频Tweak与打包重签名
这是在我逆向微信的时候所做的一些工作,同时也借鉴了许多大神的代码与博客。本文分为两大部分,第一部分是获取朋友圈小视频代码的实现流程,第二部分是将写好的插件安装到应用中,讲应用重签名打包,最后安装在非越狱机中。
微信的是一款非常出色的应用,编写习惯非常好。而且功能众多,文件达到了100M以上,所以是逆向的学习和实践的一个很好的对象。而这篇文章的主要是讲如何编写微信朋友圈小视频分享插件的。
一、获取朋友圈的小视频
首先下载微信客户端。我下载的是6.3.28版本的。环境是iPhone5S 9.1的越狱机。直接在PP助手上下载越狱版的,可以免去砸壳。至于整个流程我就不赘述了,在下面这篇博客中大神讲的非常清楚,有什么大家可以在博客里留言,或是给我留言也好:
传送门
二、打包安装重签名过程
将Tweak编写完后,通过make package install安装到手机上确认没有问题后,我们就可以吧插件安装到应用中进行打包重签名安装给非越狱机了。
1.检查依赖项:
如果设备没有越狱,是没有mobilesubstrate等环境的,而且一些系统目录是没有读写权限的,这时我么只能从目标app的二进制文件入手,通过手动修改load commands来加载自己的dylib,那么上面我们的插件又是使用theos基于mobilesubstrate编译的,有没有办法确定我们的dylib有没有依赖其他的库呢?
使用osx自带的otool工具即可,可以看出,我们的lib是依赖于substrate库的,其他的都是系统库,所以我们从越狱设备中把cydiasubstrate文件copy出来重命名为libsunstrate.dylib,和我们的dylib一起放入wechat.app目录中
最后使用install_name_tool命令修改动态库的路径把它指向app二进制文件的同级目录:
|
|
可以看到除了 substrate 库,其它依赖的都是系统自带的库。我们将 libsubstrate.dylib 拷出,使用 install_name_tool 命令修改动态库的路径,指向 app 二进制文件的同级目录。
|
|
2.将动态链接库注入到二进制文件中
接下来,需要将dylib注入到微信的二进制文件中,可以使用开源的optool工具。
编译安装optool工具:
|
|
将砸壳的ipa文件将砸壳过的 ipa 文件解压,然后将 libsubstrate.dylib 与 wxsightforward.dylib 拷贝到解压后的 WeChat.app 目录下,如果app中包含watchApp等多个可执行文件,删除掉Watch文件夹和PlugIns文件夹即可,然后使用optool吧dylib注入到WeChat这个二进制文件中:
|
|
3.打包并重签名
注入成功后接下来就是需要打包并重签名,这里我用到了AppResign这个工具。
使用方法:
|
|
然后通过PP助手或者iTools将ipa包安装到手机上即可。
最后一点要注意的是,由于中国的开发者利用免费的证书大量对应用进行重签名,所以目前苹果加上了许多限制,免费开发者的provisioning证书有效时间从之前的30天改为7天,过期后需要重新签名。另外就是一个星期内最多只能申请到10个证书。公司证书可以给安装该ID的其他人安装,企业证书可以给任何用户安装。