iOS逆向工程之Theos
如果你对iOS逆向工程有所了解,那么你对Tweak并不陌生。那么由Tweak我们又会引出Theos, 那么什么是Theos呢,简单一句话,Theos是一个越狱开发工具包,Theos是越狱开发工具的首先,因为其最大的特点就是简单。大道至简,Theos的下载安装、编译发布都比较简单,越狱开发中另一个常用的工具是iOSOpenDev,因为本篇的主题是Theos,所以对iOSOpenDev不做过多赘述。本篇博客的主题是Thoes的安装及其使用。
一、Theos的配置与安装
Theos的配置与安装算是比较简单的,按照官方给的步骤来操作,问题不大。Theos的官方文档地址官方Wiki,其中给出了如何安装和配置Theos, 本部分内容也是按照官方的Wiki来提供的,当然进行该部分操作时,要保证你本地已经安装了Homebrew, 可以使用brew命令来安装一些依赖包。brew其实类似于Linux中的yum或者apt-get,就是一个包管理工具。如果你本地没有安装brew,那么请求自行Google,从而完成对brew的安装。
1.安装dpkg
brew install dpkg
dpkg是Theos依赖的工具之一,dpkg是Debian Packager的缩写。我们可以使用dpkg来制作deb,Theos开发的插件都将会以deb的格式进行发布的。所以我在安装Theos之前要安装dpkg, 当然此处我们使用强大的brew来完成dpkg的安装。如下所示:
安装的具体过程.png
2.安装ldid
brew install ldid
在Theos开发插件中,iOS文件的签名是使用ldid工具来完成的,也就是说ldid取代了Xcode自带的Codesign。下方就是ldid的安装过程:
ldid的安装过程.png
3.Theos安装
git clone --recursive https://github.com/theos/theos.git
因为我们的Theos一般是安装在/opt/目录下的,所以先cd到/opt目录下,然后从github上相关的地址clone下来即可,步骤如下(下方安装过程挺长,请耐心等待):
Theos安装过程.png
下载好Theos后,要修改一下文件的权限,如下命令
sudo chown (id -u):(id -g) thoes
至此,Theos安装完毕,就可以开启你的Theos之旅了。
二、使用Theos创建、编译、安装使用工具
上面我们搭建好Theos的环境后,接下来就开始使用我们的Theos来做些事情了。接下来我们将要使用Theos来创建一个使用工具,并进行编译,编译后安装到我们的越狱手机上。接下来来看一下这一系列的步骤。
1.配置$THEOS
//export THEOS=theos文件所在路径
export THEOS=/opt/theos
配置$THEOS.png
2.新建工程
$THEOS/bin/nic.pl
接下来我们就要使用theos来创建我们的工程了,创建工程也是比较简单的,就是调用我们theos目录中bin下的nic.pl命令。具体执行如下所示。在执行nic.pl命令后,会让你选择新建工程的模板,目前theos中内置的是12套模板,当然你可以从网上下载其他的模板。当然我们此处创建的是application_modern类型的工程,所以我们就选2即可,当然,如果你想创建tweak,那么就选11即可,下方我们选择的是第二个模板。
在选择模板后,紧接着会让你做一系列的操作,这一些列的操作和Xcode新建iOS工程的步骤类似。
(1)输入你的工程的名字(Project Name,必选项),此处我们工程的名字是FirstTheosApplication。
(2)输入包名(Package Name),包名的命名规则一般是你们公司域名的倒写,然后后边加上你的工程名字,此处我就随便写了一个,就是下方的com.ludashi.firsttheosapplication。
(3)输入作者的名字(Author/Maintainer Name), 此处我们输入的是Mr.LuDashi
(4)然后如数类名的前缀(Class name prefix), 此处我们输入的是CE。
经过上述配置后,我们的工程就创建好了。
创建的工程.png
下方是我们创建后的工程文件目录,当然packages文件夹是我们编译打包后才生成的文件,其中的deb就是我们的安装文件。可以将该安装包安装到我们的越狱手机上。
工程文件目录.png
3.编译打包前的准备工作
export SDKVERSION=9.3
export THEOS_DEVICE_IP=ios_device_ip
接着我们要做一些编译打包前的准备工作,SDKVERSION是编译工程时所使用的SDK,因为本机Xcode中是9.3的SDK,所以我们知道的SDKVERSION是9.3。指定完编译所需的SDK后,我们需要指定打包后的文件所安装设备的IP地址,使用THEOS_DEVICE_IP来指定。下方的IP地址是一个越狱手机的IP地址。
在指定这个设备IP之前,你要保证你的越狱设备安装了OpenSSH,并且可以在Mac的终端上进行ssh登录。
进行ssh登录.png4.进行编译
make
做好编译前的准备工作后,紧接着就是编译我们刚才创建的工程了。首先进入到我们的firsttheosapplication目录中,执行make命令进行编译。如下所示。
进行编译.png
5.进行打包
make package
编译完成后,我们要讲项目进行打包,这样我们的越狱设备才能进行安装。下方是调用make package命令进行项目的打包。打包后会生成后缀名为deb的安装包。
进行打包.png
6.安装
make install
将该安装包,安装到相应的越狱设备。因为上面我们已经配置了越狱设备的IP地址,并且保证该台越狱设备可以通过ssh进行连接,所以我们直接调用make install命令就可以进行项目的安装。在安装过程中会让你输入ssh登录设备的密码,输入后会显示安装成功的操作,如下所示。
安装.png
7.安装后的效果
下方就是我们项目安装后的效果。打开Cydia,选择已安装Tab, 会看到我们刚才安装的FirstTheosApplication(实用工具),我们可以点进去进行查看,其中的一些信息大部分是我们刚才配置的信息。到此我们一个完整的流程就走完了。
安装后的效果.png