一,安装这些工具
1.安装 Theos (越狱开发工具 百度一下安装方式)
2.Idid: 给iPhone 签名的流程
3. dkpg:一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。
二,开始越狱编程(听起高大尚其实就是hook方法)
1.打开终端,找到你刚刚安装的Theos的地址输入export THEOS=/opt/theos/nameSong nameSong是你放的Theos 资源包 创建一个文件夹放的tweak
2.输入$THEOS/bin/nic.pl 走到这一步就说明你的安装Theos成功了,下边是开发模板,一般选择11,开发插件摸吧 随便提一句$THEOS 就是把Theos路径赋值给这个,方便下次直接输入。
3.选择11后,会让一步步输入以下内容,
Project Name (required): songceshi 是工程名字
Package Name [com.yourcompany.songceshi]: com.yunfeng.songceshi 插件标识符跟bundle identifier 一样
Author/Maintainer Name [Mac]: songzhaojie 开发者名字
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.apple.yufeng tweak作用对象的bundle identifier)
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: 直接回车键就行,ok 看看你文件夹有没有这个工程
三 资源包
1.control 一些刚刚输入时的一些信息(没有什么用)
2.makefile
songceshi_FRAMEWORKS = UIKit CoreGraphics Foundation 要用的框架也可以是其它框架
TARGET = iphone:latest:9.0 最低系统
THEOS_DEVICE_IP=192.168.2.17 手机Ip 保证Mac 与手机同一个局域网
3.songceshi.pilst 文件 就是要拦截的APP bundle identifier 可以多个
4.Tweak 是写代码的,
%hook 后面是类名字
中间是要拦截的方法等,
%orig 执行系统方法
%end 是结束
四, 打包deb
打开终端,输入 cd 工程路径
1.make 这种代表成功
2. make package 这种成功
3.输入export THEOS_DEVICE_IP=192.168.2.17 地址手机IP
4. 安装 make install 前提你的手机已经越狱并且安装 openSSh插件,到Cydia里面搜索安装
中间会输两次密码,不是电脑密码,而是root权限密码,alpine 密码,为了安全可以用openssh 修改密码
这时手机会重新启动,你可以到Cydia 查看你的插件,搜索名字
ok到这已经成功 下篇文章会讲获取root最高权限
theos 是iOS插件开发的一个比较常用的管理工具
theos环境配置
配置环境变量
localhost:~ wany$ export THEOS=/opt/theos
使用git安装最新版 theos
# 如果之前已经安装过 theos,请先删除,然后下载最新版rm -rf $THEOSsudo git clone --recursive https://github.com/theos/theos.git $THEOS
下载ldid - 用于模拟证书
ldid是用于对 iOS 可执行文具进行签名的工具,可以在越狱 iOS 中替换 Xcode 自带的签名工具。
curl -s http://joedj.net/ldid > ~/Desktop/ldidsudo mv ~/Desktop/ldid $THEOS/bin/ldid
安装dpkg
deb 是越狱开发安装包的标准格式,而 dpkg-deb 是操作 deb 文件的工具,有了这个工具,Theos 才能将工程正确地打包成 deb 包。
curl -s https://raw.githubusercontent.com/DHowett/dm.pl/master/dm.pl > ~/Desktop/dpkg-deb
sudo mv ~/Desktop/ldid $THEOS/bin/dpkg-deb
开始第一个插件开发
开发插件涉及到logos语法
%hook指定需要hook的类,必须以%end结尾。
%log将函数信息写入syslog 进行打印信息,可以理解为NSLog
%orig当在一个方法内部的时候,%orig会调用原来的方法(original method)。你甚至可以给原来的method传递参数,例如:%orig(arg1,arg2)。如果你不调用%orig,原来的方法就绝对不会被调用。
所以,如果你hook了某个方法,但是没有调用%orig。那么你的app 或者 iphone就将出现异常。下面的如此熟悉的代码
- (void)viewDidLoad (hook 的方法) {
[super viewDidLoad]; ( %orig )
}
创建第一个工程
localhost:~ wany$ sudo /opt/theos/bin/nic.pl
Choose a Template (required): 5
Makefile:包含必要的编译命令Tweak.xm: hook 的相关代码control: 包含applicaton/tweak的信息,当你从Cydia安装时,你可以看到这些信息,包括名字,作者,版本,等等。Resources:包含info.plist文件等firstteak.plist:注入目标app 的bundle id
编辑Tweak.xm 修改注入代码
%hook WeChat
%end
修改Makefile,插入以下代码到文件起始位置
THEOS_DEVICE_IP = 192.168.00.00ARCHS = armv7 arm64
安装到iPhone
localhost:firstteak wany$ make package install
期间会要求输入两次密码,之后安装完成
如果想要卸载,前往Cydia 已安装插件中进行卸载
follow my github: https://github.com/xlsn0w