一.什么是Theos
theos是一个越狱开发工具包,用于帮助我们进行越狱开发
二.如何使用
- 如果你的电脑只有一个xcode,运行
sudo xcode-select -p
如果有多个,运行sudo xcode-select -s /Applications/你的xcode的名字/Contents/Developer
- 运行
sudo git clone --recursive https://github.com/theos/theos.git /opt/theos
- 运行
brew install ldid
ldid是专门用来签名iOS可执行文件的工具,用来取代iOS中自带的codesign. -
查看效果
theos结构
三. 工程演示
- 运行
/opt/theos/bin/nic.pl
图片.png如果报Cowardly refusing to make a project inside $THEOS (/opt/theos/),那么请到其他目录下新建项目,不要在/opt/theos目录下建立.
- Choose a Template (required):
我们要做的是tweak操作,所以输入13,回车 - Project Name (required):
输入项目的名称,自己起一个好记得,例如 tweakDemo - Package Name [com.yourcompany.tweakdemo]:
输入包名,我瞎写的 com.love.you - Author/Maintainer Name [aaa]:
输入作者名, yk - [iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]:
注意:这里输入的是你要tweak的app的bundle identifier,一定不能写错,因为theos是根据bundle identifier来往mach-o文件注入你写的动态库的. - [iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]:
直接敲回车 - 完成上述操作,终端会显示如下内容
Instantiating iphone/tweak in tweakdemo/...
Done.
四.hook说明
- 上面的工作主要是创建hook的工程,下面开始真正的开始hook代码.
-
将创建的工程拖到sublime中,可以编辑下面4个文件
control: 记录一些工程信息
Makefile:打包的一些设置
Tweak.x: 写hook的代码
tweakWeChat.plist: 过滤文件和一些配置信息
五.运行
- mac运行
sh_sshUSB.sh
- Makefile中添加代码
export THEOS_DEVICE_IP = 127.0.0.1
export THEOS_DEVICE_PORT = 2222
Makefile中替换代码(当然你也可以学习网上的那种配置环境变量,不过比较麻烦....)
#include $(THEOS)/makefiles/common.mk
include /opt/theos/makefiles/common.mk
#include $(THEOS_MAKE_PATH)/tweak.mk
include /opt/theos/makefiles/tweak.mk
- 在Tweak.x中编写要hook的代码
MicroMessengerAppDelegate
这个类随便找的,主要是看hook成功与否.
%hook MicroMessengerAppDelegate
-(_Bool)application:(id)arg1 didFinishLaunchingWithOptions:(id)arg2
{
UIAlertView *alertView = [[UIAlertView alloc]init];
alertView.delegate = self;
alertView.title = @"hook成功";
[alertView addButtonWithTitle:@"取消"];
[[UIApplication sharedApplication].keyWindow addSubview:alertView];
[alertView show];
return %orig;
}
%end
- mac运行
make clean && make package && make install
安装hook编写的动态库 - 等待重启完就能看见自己写的hook了.
网友评论