安装THEOS
安装theos之前需要先利用brew安装一下ldid。命令brew install ldid
。
为了使nic.pl命令能够在全局使用,在.bash_profile的中配置环境变量
export THEOS=~/theos
export PATH=$THEOS/bin:$PATH
clong theos
$ git clone --recursive https://github.com/theos/theos.git $THEOS
使用theos
在需要创建项目的目录下使用nic.pl
命令。
选择13,创建iphone/tweak项目。根据提示填写项目信息。
- Project Name (required):项目名称
- Package Name [com.yourcompany.sochhh]:项目id
- Author/Maintainer Name [SoC]: 开发者名字
- [iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]:要tweak的项目id(项目的bundle id)
主要填写的以上几项 其他的一律回车跳过即可。创建完成之后的项目目录:
tweak dir- socTest.plist 中填写的就是要tweak的项目bundle id,创建项目的时候也可以跳过以后在这里填写。
- makeFile 用于编译 打包 安装的命令工具 主要使用的命令有
make clean
清理编译信息make
编译make package
打包make install
安装。 - tweak.xm hook代码在这里编写。
使用nic.pl的时候,设置的环境变量不生效的可能原因以及解决办法
如果安装完成之后不能全局调用nic.pl,需要使用source .bash_profile
或者重启terminal使环境变量生效。如果默认使用.bash终端,环境变量的优先级为/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
如果使用了.zsh,你会发现在.bash_profile中配置的环境变量在下次重启终端的时候并不会起作用,因为.zsh不会执行.bash_profile,如果要使下次重启终端的时候这些环境变量生效则需要在.zshrc中重新配置,或者在启动.zshrc的时候调用一下source .bash_profile
。
开始tweak项目
配置makeFile文件
在makeFile中配置环境变量(ssh访问iPhone的方式)
- THEOS_DEVICE_IP
- THEOS_DEVICE_PORT
如果不想每次都编写这两个环境变量也可以设置在.bash_profile中,但是需要保证这两个值不会经常变动,设置在.bash_profile中才有意义。
编写tweak.xm
hook代码编写在%hook
和%end
中间。
%hook
后面跟要hook的类名,中间是要hook的方法名。方法名可以通过class-dump
获取的头文件中查找。
编写完成之后使用make
命令编译成dylib动态库,make package
命令将动态库和plist打包成一个deb格式的插件, make install
命令通过ssh方式连接iPhone,借助Cydia软件安装到手机中。
手机中安装deb插件的目录为:
deb插件目录
所以当我们需要卸载插件的时候直接在Cydia中卸载即可。
笔记来自 www.520it.com 小码哥iOS逆向
网友评论