文档章节

基于Theos越狱开发

stormm
 stormm
发布于 2016/08/10 07:47
字数 1043
阅读 296
收藏 0

前言:
       theos是国外大牛开发的越狱编译平台,通过命令行可以快速的生成例子,其最有意思的当属tweak插件的开发,其Logus的语法简洁明了,是越狱中HOOK的绝佳神器,下面就来一步步揭开这些东西的神秘面纱!
一、环境准备

1、安装theos

;新建theos安装目录
$cd ~
$mkdir -r work/theos

;下载theos
$export THEOS=~/work/theos
$svn co http://svn.howett.net/svn/theos/trunk $THEOS


2、 安装签名工具ldid

$git clone git://git.saurik.com/ldid.git
$cd ldid
$git submodule update --init
$./make.sh
$cp -f ./ldid $THEOS/bin/ldid

3、设置环境变量

$touch ~/.bash_profile

;设置环境变量(THEOS_DEVICE_IP为要安装app的真机IP)
$vi ~/.bash_profile
export THEOS=~/work/theos
export PATH=$THEOS/bin:$PATH
export THEOS_DEVICE_IP=10.60.113.36 THEOS_DEVICE_PORT=22

4、安装substrate库

;安装brew 包安装工具
$/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

;安装wget
$brew install wget

;安装dpkg
$brew install dpkg

;下载substrate
$wget http://apt.saurik.com/debs/mobilesubstrate_0.9.6011_iphoneos-arm.deb

;解包
$mkdir substrate
$dpkg-deb -x mobilesubstrate_*_iphoneos-arm.deb substrate

;拷贝到theos目录
$mv substrate/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate $THEOS/lib/libsubstrate.dylib
$mv substrate/Library/Frameworks/CydiaSubstrate.framework/Headers/ \
    CydiaSubstrate.h $THEOS/include/substrate.h

5、更新iphone开发头

$mkdir iphoneheaders

;下载头文件
$git clone https://github.com/nanotech/iphoneheaders.git

;拷贝到theos目录下
$mv iphoneheaders/* $THEOS/include/

;ps
$cp /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceAPI.h .

二、真枪实战

1、第一个application程序

;应用环境变量
$. ~/.bash_profile 

;新建项目
$ $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): 1
Project Name (required): iPhoneDevWiki
Package Name [com.yourcompany.iphonedevwiki]: net.howett.iphonedevwiki
Authour/Maintainer Name [Dustin L. Howett]:              
Instantiating iphone/application in iphonedevwiki/...
Done.

;切换到生成的项目目录下 make 生成deb
$cd iphonedevwiki
$make package

;安装deb到cydia中
$make install

在真机的cydia已安装列表中会有iphonedevwiki的包名,需要respring手机才能在桌面看到安装的app。respring可以在cydia上安装个插件Respring,方便调试!

2、第一个tweak程序

;应用环境变量
$. ~/.bash_profile 

;新建项目
$ $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
Project Name (required): iPhoneDevWiki
Package Name [com.yourcompany.iphonedevwiki]: net.howett.iphonedevwiki
Authour/Maintainer Name [Dustin L. Howett]:              
Instantiating iphone/tweak iphonedevwiki/...
Done.

;生成的文件目录
Makefile
Tweak.xm
control
theos
tweak.plist

;Makefile中增加编译框架
iPhoneDevWiki_FRAMEWORKS = UIKit

;Tweak.xm中增加alert

#import <SpringBoard/SpringBoard.h>

%hook SpringBoard

-(void)applicationDidFinishLaunching:(id)application {
%orig;

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome"
message:@"Welcome to your iOS Device Ted!"
delegate:nil
cancelButtonTitle:@"security.ios-wiki.com" otherButtonTitles:nil];

[alert show];
[alert release];

}

%end


;切换到生成的项目目录下 make 生成deb
$cd iphonedevwiki
$make package

;安装deb到cydia中
$make install

一、deb patch

1、获取cydia安装包

    老版本的cydia会将通过源安装的deb删除掉,以至找不到deb包。当前可使用apt来获取安装包。

$cd var/cache/apt/archives

#更新源
$apt-get update

#下载包
$apt-get -d install app.weiphone.nx

#查看包安装信息
$dpkg-dbg -I xx.deb

#安装deb
$dpkg -i xx.deb

#卸载应用
$dpkg -r app.weiphone.nx

2、通过theos编译的deb文件里面包含debian_binary、control.tar.gz、data.tar.gz等文件,可以使用命令显示

#列出deb中文件
$ar vt com.cm.tweak_0.0.1-1_iphoneos-arm.deb   
rw-r--r--       0/0             4 Aug  9 00:53 2016 debian-binary
rw-r--r--       0/0           293 Aug  9 00:53 2016 control.tar.gz
rw-r--r--       0/0          1708 Aug  9 00:53 2016 data.tar.gz

#提取文件
$ar vx xxx.deb debian-binary
$ar vx xxx.deb control.tar.gz
$ar vx xxx.deb data.tar.gz

#删除文件
$ar d xxx.deb data.tar.gz

#更新文件
$ar r xxx.deb data.tar.gz

#解压tar.gz
$tar -tzvf control.tar.gz

#打包
$tar -zvcf control1.tar.gz control postinst

#制作deb包
$ar -rc xx.deb debian-binary control.tar.gz data.tar.gz

#特殊情况碰到lzma
#安装lzma
$sudo apt-get install lzma

#查看lzma情况
$ lzmainfo data.tar.lzma

#解压lzma
$unlzma data.tar.lzma
$tar -xvf data.tar

#压缩lzma
$tar -cvf data.tar file1 file2
$lzma -z data.tar

3、scp操作

1、从服务器下载文件
  scp username@servername:/path/filename /tmp/local_destination

2、上传本地文件到服务器
  scp /path/local_filename username@servername:/path  
  
3、从服务器下载整个目录
  scp -r username@servername:remote_dir/ /tmp/local_dir 
  
4、上传目录到服务器
  scp  -r /tmp/local_dir username@servername:remote_dir

4、重启springboard,刷新桌面

$killall SpringBoard

ps:

syslogd to /var/log/syslog

tail -f /var/log/syslog

© 著作权归作者所有

stormm
粉丝 32
博文 22
码字总数 14557
作品 0
昌平
运维
私信 提问
iOS逆向工程- 学习整理(工具详解)

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

_小迷糊
2018/05/11
0
0
逆向第二课(Theos安装配置及Tweak工作原理)

Theos安装与配置 Theos是一个越狱开发工具包,使用它可以创建Tweak项目,动态Hook第三方程序。GitHub链接:https://github.com/theos/theos ,官网安装教程可以参考:https://github.com/theo...

LvesLi
2017/09/06
0
0
ios插件开发-theos环境搭建

theos 是ios在越狱环境下,开发的工程管理工具 https://github.com/DHowett/theos 下面分享下环境搭建过程: 给xcode安装 command line tools 从10.8开始xcode的command line tools就要自己安...

余成海
2016/02/22
4.5K
0
iOS逆向开发第二章-建立Tweak工程

建立tweak工程,最重要的就是配置theos。 这里插一段话,上一章讲了从无到用usbmuxd连接越狱手机,网上普遍文档是直接 ssh root@ip的 然后tweak的配置也是直接传到这个ip,而一部分讲的是usb...

pro_cookies
2017/04/11
0
0
移动App入侵与逆向破解技术-iOS篇

如果您有耐心看完这篇文章,您将懂得如何着手进行app的分析、追踪、注入等实用的破解技术,另外,通过“入侵”,将帮助您理解如何规避常见的安全漏洞,文章大纲: 简单介绍ios二进制文件结构...

_柳大官人
2016/07/25
613
1

没有更多内容

加载失败,请刷新页面

加载更多

一套完整的软件开发流程是怎样的?

做什么事都需要一个流程,软件开发也不例外。 那么,一个软件从无到有到底是怎么开发的?一个软件产品的结果为什么是这样?为什么开发的速度不能再快一点。为什么程序员大多秃顶?他们有那么...

我想造火箭
28分钟前
4
0
漂亮思维导图怎样绘制?教你快速套用思维导图模板绘制d

用MindMaster软件绘制思维导图,会更加高效和美观!因为MindMaster是一款专业的思维导图软件,零基础经验的朋友花费5分钟时间就能掌握它的相关画法。以下是电脑软件思维导图画法的简单步骤。...

工具分享
31分钟前
4
0
linux 软链接与 硬链接的区别

软链接与硬链接的区别 1. 硬链接不会创建inode,即使用的inode都是一样的。软链接会创建新的inode。 2. 硬链接的访问属性和源文件一模一样,没有l的标识。软链接的访问属性写明了是l,且访问...

突突突酱
32分钟前
2
0
新特性解读 | MySQL 8.0.18 有权限控制的复制

原文:Replication with restricted privileges https://mysqlhighavailability.com/replication-with-restricted-privileges/ 作者:Pedro Figueiredo 翻译:管长龙 背景 MySQL 8.0.18 以前......

爱可生
41分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部