iOS逆向编程

参考地址

http://www.swiftyper.com/2016/12/26/wechat-redenvelop-tweak-for-non-jailbroken-iphone/

https://www.jianshu.com/p/0b6cdddd137a

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, 下面链接基本能用,不行再搜搜慢慢来这个简单,

https://blog.youkuaiyun.com/u010545480/article/details/74103748

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 与重签名可以直接使用图形化工具 ios-app-signer 来完成。这里的证书配置,建议新建项目在账号里里创建一个,在这里选择开发模式的证书

这个工具可以自动加载出本机的证书以及 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 文件进行安装了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值