theos是一个越狱开发工具包,使用它可以创建tweak项目来动态Hook第三方程序。
安装前签名工具ldid
首先确保安装了brew,然后在终端使用命令“brew install ldid”安装ldid。
修改环境变量
为了使用方便,需要修改用户配置文件,在终端输入“vim ~/.bash_profile”编辑配置文件,在该文件后面追加以下两行:
export THEOS=~/theos
export PATH=$THEOS/bin:$PATH
保存退出,在终端输入命令“source ~/.bash_profile”使该环境变量生效,或者重新打开终端也可以令其生效。
下载theos
cd到~/theos目录,若无该目录先创建,然后使用git clone命令下载theos:git clone --recurse-submodules https://github.com/theos/theos.git。需要注意的是,因为theos有很多依赖库,因此需要使用--recurse-submodules来循环下载,否则下载的theos可能会不可用,—recursive也是用于循环下载,但我这边报错了,所以换成了--recurse-submodules。
创建tweak项目并使用
新建一个项目目录,然后cd到该目录,输入命令“nic.pl”会出现以下界面。
nic.pl
选择tweak项目,输入其序号15即可。然后依次输入Project Name(项目名称)、Package Name(项目ID,随意写)、Author/Maintainer Name(作者,可以直接敲回车,它会默认使用Mac上的用户名)、[iphone/tweak] MobileSubstrate Bundle filter(需要修改的APP的Bundle Identifier,可以通过Cycript工具获取)、[iphone/tweak] List of applications to terminate upon installation(这一步直接回车使用默认做法即可)。
项目文件
创建完成后,会生成以上四个文件。
首先打开Makefile文件,在前面加入环境变量,写清楚是通过哪个IP和端口访问手机。
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=2222
IP为本地127.0.0.1,端口是使用usbmuxd输入“iproxy 2222 22”切换远程连接的端口号,可以自己指定。若不希望每个项目的Makefile都编写IP和端口环境变量,可以将以上两行添加到用户配置文件中。
然后就可以打开Tweak.x文件编写代码,当然在这之前我们需要对修改的APP进行砸壳获取到头文件信息,并使用Reveal、Cycript等工具来分析我们想要修改的地方。
%hook 要hook的类名
要hook的方法与实现
%end
最后通过编译(命令make)、打包(命令make package,会在项目目录下生产一个.deb文件)和安装(命令make install,完成后会自动重启SpringBoard)即可完成插件的开发。
此时该插件就会将手机上的APP永久修改了,若需要恢复可卸载插件,将iPhone中/Library/MobileSubstrate/DynamicLibraries目录下相关的.dylib和.plist文件删除即可。












网友评论