07-3-theos-tweak的开发、运行过程、卸载、多文件开发以及发布release版本

theos-tweak的开发过程

在这里插入图片描述

  • 编写Tweak代码
    在这里插入图片描述
  • $ make :编译Tweak代码为动态库(* dylib)
    在这里插入图片描述
  • $ make package :将dylib打 包为deb文件
    在这里插入图片描述
  • $ make install :将deb文件传送到手机上,通过Cydia安装deb
    在这里插入图片描述
  • 插件将会安装在 /Library/MobileSubstrate/DynamicLibraries 文件夹中
    • *.dylib: 编译后的Tweak代码
    • *.plist: 存放着需要hook的APP ID

theos-tweak的运行过程

在这里插入图片描述

  • 当打开APP时
    • Cydia Substrate 会加载plist文件,发现有对应的APP, 就会让APP去加载对应的dylib(Cydia已自动安装的插件)
    • 修改APP内存 中的代码逻辑,去执行dylib中 的函数代码
  • 所以,theos的tweak并不会对APP原来的可执行文件进行修改,仅仅是修改了内存中的代码逻辑

tweak插件的卸载

方式一

  • 直接从 /Library/MobileSubstrate/DynamicLibraries 文件夹删除插件对应的Plist文件和dylib文件
  • 这种方式卸载不是很干净

方式二

  • 通过Cydia卸载
  • 推荐这种方式, 卸载比较彻底
    在这里插入图片描述 在这里插入图片描述

多文件开发

  • 加入文件分布是这样的
    在这里插入图片描述

  • 首先加载文件是通过 Makefile 文件设置
    在这里插入图片描述

  • xm文件不支持通配符, 不然就会报错在这里插入图片描述

  • 导入文件的时候
    在这里插入图片描述

发布release版本插件

make package debug=0

在这里插入图片描述

疑问

  • 未脱壳的APP是否支持tweak?
    • 支持,因为tweak是在内存中实现的,并没有修改.app包中的可执行文件
  • tweak效果是否永久性的?
    • 取决于tweak中用到的APP代码是否被修改过
  • 如果一旦更新APP,tweak会不会失效?
    • 取决于tweak中用到的APP代码是否被修改过
  • 未越狱的手机是否支持tweak?
    • 不支持
  • 能不能对Swift\C函数进行tweak?
    • 可以,方式跟OC不一样
  • 能不能对游戏项目进行tweak?
    • 可以
    • 但是游戏大多数是通过C++\C#编写的,而且类名、函数名会进行混淆操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值