iOS逆向编程
参考地址
1.下载破解版的ipa文件
1)PP助手下载微信为例,2)越狱手机破壳导出来
微信ipa地址留言在网盘
2.dylib 动态链接库
这是别人已经编译好的微信自动抢红包功能
$ git clone https://github.com/buginux/WeChatRedEnvelop.git
$ cd WeChatRedEnvelop
$ make
$ cp .theos/obj/debug/WeChatRedEnvelop.dylib ~/Desktop
将生成的 dylib 文件拷贝到桌面,跟刚刚砸过壳的微信应用放到一个目录层级。
1)这里执行make需要安装theos, 下面链接基本能用,不行再搜搜慢慢来这个简单,
2)make之前要注意更改该文件夹下Makefile文件里的路径
THEOS_DEVICE_IP = localhost
THEOS_DEVICE_PORT = 2222
ARCHS = armv7 arm64
TARGET = iphone:latest:7.0
include theos/makefiles/common.mk
SRC = $(wildcard src/*.m)
TWEAK_NAME = WeChatRedEnvelop
WeChatRedEnvelop_FILES = $(wildcard src/*.m) src/Tweak.xm
WeChatRedEnvelop_FRAMEWORKS = UIKit
include theos/makefiles/tweak.mk
after-install::
install.exec "killall -9 WeChat"
3)执行完会生成一个WeChatRedEnvelop.dylib文件 复制出来上面有执行语句路径
4.检查依赖项 otool -L WeChatRedEnvelop.dylib
上述文章对这里说明清楚只有一个是自己的库需要更改地址其他不变
可以看到除了 substrate 库,其它依赖的都是系统自带的库。我们将 libsubstrate.dylib 拷出,使用 install_name_tool
命令修改动态库的路径,指向 app 二进制文件的同级目录。
如果你的系统中不是 /usr/lib/libsubstrate.dylib 而是 /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate 的话,执行第一句,
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib WeChatRedEnvelop.dylib
$ otool -L WeChatRedEnvelop.dylib
位置是/usr/lib/libsubstrate.dylib 执行下面
$ install_name_tool -change /usr/lib/libsubstrate.dylib @loader_path/libsubstrate.dylib WeChatRedEnvelop.dylib
$ otool -L WeChatRedEnvelop.dylib
5.将动态链接库注入二进制文件中
编译安装 optool 工具:
$ git clone --recursive https://github.com/alexzielenski/optool.git
用Xcode启动项目,真机运行一下 会有一个optool文件 复制到任意地方备用
将砸壳过的 ipa 文件解压,然后将 libsubstrate.dylib 与 WeChatRedEnvelop.dylib 拷贝到解压后的 WeChat.app 目录下。
将上面生成的文件放到微信目录下 libsubstrate.dylib没有去csdn下载
$ cd ~/Desktop
$ unzip wechat.ipa -d wechat
$ cp libsubstrate.dylib WeChatRedEnvelop.dylib wechat/Payload/WeChat.app
使用 optool 把 WeChatRedEnvelop.dylib 注入到二进制文件中
进入到上述解压wechat的目录执行下面,/path/to/optool为刚才生成optool复制出来的位置路径
$ /path/to/optool install -c load -p "@executable_path/WeChatRedEnvelop.dylib" -t wechat/Payload/WeChat.app/WeChat
6.打包签名
在打包之前更改地方,1.请先将 WeChat.app 里面的 Watch 、plugs目录删除 2.修改info.plist文件的bundleId为你证书关联项目的id
打包 ipa 与重签名可以直接使用图形化工具 来完成。这里的证书配置,建议新建项目在账号里里创建一个,在这里选择开发模式的证书
这个工具可以自动加载出本机的证书以及 Provisioning Profile 文件,使用起来十分方便,当然也可以手动选择证书文件。
如果是使用个人开发者证书,需要先将设备的 UUID 加到 Provisioning Profile 中。
我这里是直接从一个 archive 过的应用中提取 embedded.mobileprovision 文件,并在 Provisioning Profile 一栏中选择 Choose Custom File 使用这个文件。
点击 start 后,指定保存路径,iOS App Signer 就会帮你搞定所有事情。
安装
在 iOS App Signer 完成打包与重签名后,我们就可以进行安装了。
安装有两种方法,一种是使用 iTool 工具安装 ipa 文件。
另外一种是针对有 XCode 的同学,在菜单 - Window - Devices 中打开设置窗口。点击 Installed Apps 栏下面的 + 号就可以选择 ipa 文件进行安装了。