3Teak - 原理
Tue, May 8, 2018
基本流程
编写代码
make编译
theos中出现了一个动态库,说明make操作,把编写的代码生成了一个动态库。
make package
把动态库打包成了一个deb文件
make package:这个指令,是包含了make中的「编译」功能的,所以以后不用make,直接make package就好
make install
- 远程登录手机(根据环境变量)
- 传递deb包数据
- Cydia安装deb包
- Cydia把里面的动态库拿出来
- plist文件:里面存了靶App的Bundle ID
- 放到这里
- 这个东东提供了安装机制
影响靶App
点击靶App的时候,Cydia Substrate会看文件夹下的plist文件写的bundle ID,一旦发现bundle ID匹配,就会把动态库载入内存,对靶App的内存代码(二进制代码)进行修改。
我们并木有改过靶App的代码,只是在内存中进行了修改,而非硬盘中的数据。
验证
问题
- 没脱壳的App是否支持tweak?
- 是的
- tweak插件是否永久有效?
- 一旦靶App目标类修改了,会失效
- 未越狱手机是否支持tweak?
- 当然不可以 - Cydia Substree一定在越狱机上做的
- 能不能对游戏进行tweak?
- 目前不可以,需要学下如何tweak C
- 游戏的C代码做了混淆,比较麻烦
汇编层面分析
靶程序
tweak程序
汇编跟踪
然后Step into这个方法
无tweak
注意看顶部方法名
来到了ViewController的click方法
有tweak
注意看顶部方法名
tweak_test动态库中的方法