theos 是ios在越狱环境下,开发的工程管理工具 https://github.com/DHowett/theosios
下面分享下环境搭建过程:git
给xcode安装 command line toolsgithub
从10.8开始xcode的command line tools就要本身安装了,若是没安装的话,会出现各类问题,好比gcc没有安装,等等各类诡异的问题。新手非常惧怕。spring
https://developer.apple.com/downloads/?=Command%20Line%20Tools%20 xcode
安装 macports app
macports是用于安装dpkg的快速安装工具,还能够安装其余不少工具koa
设置配置iphone
export THEOS=/opt/theos
4.下载theos函数
sudo git clone https://github.com/moloch--/theos.git $THEOS
5.安装dpkg
sudo port install dpkg
6. 下载 https://github.com/kokoabim/iOSOpenDev
7.下载的iOSOpenDev/lib 拷贝到 /opt/theos/lib
8.下载的iOSOpenDev/include 拷贝到 /opt/theos/include
9.下载的iOSOpenDev/bin 拷贝到 /opt/theos/bin
环境基本完成,若是须要hook一些特殊的头文件,本身可使用class_dump_z解析出来放到header里面,也能够在google中找
---------------------------------------------------凌乱的分割线------------------------------------------
1.建立工程
$THEOS/bin/nic.pl NIC 1.0 - New Instance Creator —————————— [1.] iphone/application [2.] iphone/library [3.] iphone/preference_bundle [4.] iphone/tool [5.] iphone/tweak Choose a Template (required): 5
选择com.apple.springboard开发桌面插件
2.建立成功后,在工程目录下,修改MakeFile 修改头部第一行
export ARCHS = armv7 export TARGET=iphone:latest:5.1 include $(THEOS)/makefiles/common.mk
3.编写TWeak.xm文件代码
%hook SBScreenShotter - (void)saveScreenshot:(BOOL)screenshot { %orig; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:@"Welcome to your iPhone love" delegate:nil cancelButtonTitle:@"okokok" otherButtonTitles:nil]; [alert show]; [alert release]; } %end
%hook后面跟的是你要hook的类名称,以一个%end结尾。上面的代码说明咱们会hook Springboard类里面的method。 %orig 当在一个method内部的时候,%orig会调用原来的方法(original method)。你甚至能够给原来的method传递参数,例如:%orig(arg1,arg2)。若是你不调用%orig,原来的方法就绝对不会被调用。因此,若是你hook了SpringBoard的init方法,可是没有调用%orig。那么你的iphone就将不可用,除非你经过ssh删除你的app。
上面代码的做用就是在桌面截屏的时候弹出一个对话框!,固然,若是你不知道的想要hook的函数是什么的话,请使用各类分析工具得到!,能够看上面几篇文章
4.增长frameWork
那是由于咱们依靠UIKit framework来显示alert,因此须要在Makefile中加上以下一行: WelcomeWagon_FRAMEWORKS = UIKit
5.打包
cd到工程目录下,make,make成功后,使用
设置配置安装
export THEOS_DEVICE_IP=10.242.125.7 (这是手机的IP)
make package install