文档章节

ios插件开发-theos环境搭建

余成海
 余成海
发布于 2016/02/22 14:25
字数 642
阅读 4336
收藏 0

theos 是ios在越狱环境下,开发的工程管理工具 https://github.com/DHowett/theos

下面分享下环境搭建过程:

  1. 给xcode安装 command line tools

    从10.8开始xcode的command line tools就要自己安装了,如果没安装的话,会出现各种问题,比如gcc没有安装,等等各种诡异的问题。新手很是害怕。

    https://developer.apple.com/downloads/?=Command%20Line%20Tools%20 

  2. 安装 macports 

    macports是用于安装dpkg的快速安装工具,还可以安装其他很多工具

    http://distfiles.macports.org/MacPorts 

  3. 设置配置

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

 

 

© 著作权归作者所有

共有 人打赏支持
余成海
粉丝 61
博文 57
码字总数 29577
作品 0
杭州
iOS工程师
iOS逆向工程- 学习整理(工具详解)

前言 一、逆向工程的要求 具备丰富的 iOS 开发经验 最好能非常熟悉 iOS 设备的硬件构成,iOS 系统的运行原理。 拿到任意一个 App 之后能够大致推断出它的项目规模和使用的技术,比如它的MVC模...

_小迷糊
05/11
0
0
React Native SDK for OSS

此文主要介绍 React Native SDK for OSS的方方面面,包括相关基本概念、项目背景、项目方案、环境搭建运行、使用姿势、注意事项等。文末的附件可运行Example Zip压缩包和针对新手的入门实用文...

zuozhao
05/18
0
0
OGEngine v2.1.1 Mac开发环境搭建

OGEngine v2.1.1 Mac开发环境搭建 OGEngine v2.1.1拓展了iOS平台的支持,我们现在来搭建下开发环境。注意,由于iOS版本的编译开发必须在Mac系统上,所以我们的部署也是在Mac环境下进行的。 ...

橙游OrangeGame
2014/09/04
0
0
OGEngine发布跨平台版本,支持iOS及Android

OGEngine v2.1.1拓展了跨平台,支持iOS平台和Android平台,我们现在来搭建下开发环境。注意,由于iOS版本的编译开发必须在Mac系统上,所以我们的部署也是在Mac环境下进行的。 1. 检查系统 建...

橙游OrangeGame
2014/09/08
0
0
Jenkins Gitlab持续集成打包平台搭建

相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点...

nineep
06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

day58-20180816-流利阅读笔记-待学习

苹果市值破万亿,iPhone 会涨价吗? Lala 2018-08-16 1.今日导读 苹果教父乔布斯曾经说过:“活着就是为了改变世界。”虽然他在 56 岁时就遗憾离世,但他极具创新和变革的精神早已深埋进苹果...

aibinxiao
20分钟前
4
0
[雪峰磁针石博客]python3快速入门教程1 turtle绘图-2函数

菲波那契序列: >>> # Fibonacci series:... # the sum of two elements defines the next... a, b = 0, 1>>> while b < 10:... print(b)... a, b = b, a+b...112......

python测试开发人工智能安全
今天
0
0
java环境变量配置最正确的方式

原贴:https://blog.csdn.net/qq_40007997/article/details/79784711,十分详细,亲测有效

kitty1116
今天
0
0
49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
2
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部