项目简介
本项目是一个运行时代码修改系统,通过用自定义实现替换任意函数和Objective - C方法达成代码修改目的。它是Cydia Substrate的自由软件替代品,当前对iOS提供全面支持,对OS X提供有限支持,未来有更广泛移植计划。
项目的主要特性和功能
- 动态代码修改:运行时替换任意函数和Objective - C方法,改变程序行为。
- 跨平台支持:支持iOS和有限的OS X,未来加强跨平台能力。
- 先进的反汇编器:部分自动生成的反汇编器更复杂,能处理更多PC相对指令。
- 错误识别:识别函数是否过短无法打补丁,遇到罕见跳转回打补丁区域情况返回适当错误码。
- API返回错误码:方便开发人员处理可能出现的错误。
- 额外功能:提供插入等额外功能。
安装使用步骤
编译
编译iOS版本
bash
./configure --xcode-sdk=iphoneos --xcode-archs=arm64 && make -j8 &&./script/gen-deb.sh
可关闭darwin-bootstrap/ib-log.h
中的IB_VERBOSE
,避免大量文件写入/tmp
和系统日志。
编译Mac版本
bash
./configure && make -j8
其他情况可使用./configure --help
获取信息。
使用
iOS使用方法
扩展应放置在/Library/Substitute/DynamicLibraries
中,布局与Substrate相同。若要快速测试现有Substrate扩展是否与Substitute兼容,可运行以下命令:
bash
install_name_tool -change \
/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate \
/usr/lib/libsubstitute.0.dylib \
extension.dylib
然后将其移动到新目录。
注意事项
本项目目前处于Alpha阶段,依赖特定系统架构和API,可能需要特定权限运行,请确保在正确环境下编译和使用。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】