版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/glt_code/article/details/78125503
Theos的安装和使用-iOS逆向工程
Theos就是一套越狱开发工具包
1. Theos的安装
1.1 安装homebrew
1.2 安装dpkg
sudo brew install dpkg
1.3 安装ldidsudo brew install ldid
1.4 安装Theossudo git clone --recursive https://github.com/theos/theos.git /opt/theos
1.5 修改权限sudo chown $(id -u):$(id -g) /opt/theos
1.6 加入到环境变量到 ~/.bash_profile 中export THEOS=/opt/theos
export PATH=/opt/theos/bin/:$PATH
如果出现commad not found执行: source ~/.bash_profile
1.7 $THEOS /bin/nic.pl
1.8 cd到任意可执行目录执行:nic.pl
1.9 附加:如果报以下错误(1)dpkg-deb: error: obsolete compression type 'lzma'; use xz instead
解决:找到/opt/theos/makefiles/package/deb.mk文件,将_THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= lzma 改为 _THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= xz
(2)dpkg-deb: file `/tmp/_theos_install.deb' contains ununderstood data member data.tar.xz
解决:找到/opt/theos/makefiles/package/deb.mk文件,将$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
改为
$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
2. 使用
2.1 cd到任意可执行目录执行nic.pl ,如图
2.3 打包前的工作编写Tweak.xm
#import <SpringBoard/SpringBoard.h>
%hook SpringBoard
- (void)applicationDidFinishLaunching:(id)application {
%orig;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello 通" message:@"theos执行成功" delegate:self cancelButtonTitle:@"好的" otherButtonTitles:nil];
[alert show];
}
%end
语法补充:
- %hook 指定需要hook的类名,以%end结尾
- %log 用来打印log的,将信息输入到syslog中,如%log((NSString *)@"tong")
- %orig 执行被hook函数的原始代码,类似于super.method功能
- %group 该指令用于%hook的分组,%group后边跟的是组名,%group也是必须以%end结尾,其中可以包含多个%hook
- %init 该指令用来初始化某个%group,一个group只有被初始化后才可生效,init必须在hook中进行执行。
- %ctor tweak的构造器,用来初始化,如果不显式定义,Theos就会自动生成一个%ctor,并在其中调用%init(_ungrouped). 如:%ctor { %init(_ungrouped)}
- %new 该指令用来给现有的class添加一个新的函数。与Runtime中的class_addMethod相同。
- %c 该指令用来获取一个类的名称,类似于objc_getClass。
2.4 配置 Makefile
export THEOS_DEVICE_IP = 192.168.2.98 配置设备ip
执行完成之后重启
after-install::install.exec "killall -9 SpringBoard"
#设备ip地址,放在此文件最上面
export THEOS_DEVICE_IP = 192.168.2.98
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = TheosCSDN
TheosCSDN_FILES = Tweak.xm
include $(THEOS_MAKE_PATH)/tweak.mk
#执行完成后重启SpringBoard
after-install::
install.exec "killall -9 SpringBoard"
3. 编译
make
4. 打包
make package
5. 安装(期间输入两次密码,第一次安装输入,第二次重启SpringBoard输入)
make install
5.1 安装完成之后在手机Cydia中会出现如图
5.2 此时在手机锁屏界面上出现了弹框如图
整个使用过程结束