下面本人自己试验成功的步骤。看到还有很多其他的步骤来达到相同的目的,根据自己喜好熟练度选择。
环境
theos 创建dylib
yololib 将动态库加入到Load Commands。
用法:
./yololib mach-o(需要注入的二进制文件) custom.dylib
查看:
otool -L math-o
ipa打包
压缩 以下文件。注意: 不能是直接压缩最外层的文件夹,需选中两个文件压缩。
├── Payload
└── iTunesArtwork
- 重签
sigh resign ***.ipa
选中需要用的证书
&mobileprovision
疑难
- 找不到
/common.mk
文件。
执行export THEOS=/opt/theos
,关闭终端后失效。 - 在安装ipa时提示 dylib 版本号0.0.0 ,不符合最低 1.0.0 要求。
在Makefile中添加
ARCHS = armv7 armv7s arm64
...
_THEOS_TARGET_LDFLAGS += -current_version 1.0
_THEOS_TARGET_LDFLAGS += -compatibility_version 1.0
-
安装ipa后,打开崩溃。显示无法加载 自定义的dylib。
非越狱手机依赖需要libsubstrate.dylib
。
步骤:- 去theos安装目录查找。
/opt/iOSOpenDev/lib/libsubstrate.dylib
- 替换自定义dylib中依赖路径。
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib ioswechatselectall.dylib
- 然后把 自定义dylib 和 libsubstrate.dylib 复制到需要注入的ipa bundle根目录中。
- 去theos安装目录查找。
-
修改完Load command 之后,执行 ldid进行签名。
详情ldid -S Wechat
第二种修改 load command的方法 (推荐)
Install
optool install -c load -p "@executable_path/RedEnvelop.dylib" -t WeChat
Uninstall
optool uninstall -p "@executable_path/RedEnvelop.dylib" -t WeChat
-
库剥离&合并
剥离:
lipo -thin armv7 xxxx.dylib -output xxxx_v7.dylib lipo -thin arm64 xxxx.dylib -output xxxx_64.dylib
合并:
lipo -create ./xxxx_v7.dylib ./xxxx_64.dylib -output ./xxxx.dylib
查看本地全部已安装证书
security find-identity -p codesigning -v
查看App签名信息| bundle Name,mach0 path
codesign -vv -d ZHSign.app
最新破壳方法
frida 一键破壳。方便到令人发指。。。
// 电脑链接手机,修改ssh端口为 2222.
iproxy 2222 22
// 如果都没有问题,执行以下命令就可以在当前目录下看到破壳后的ipa
./dump.py 微信
由于简述无法上传附件。github也有大小限制。如果需要破壳ipa的童鞋,可以email给我。
wally.h@qq.com