前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS逆向之theos安装与使用

iOS逆向之theos安装与使用

作者头像
用户4682003
发布2022-05-19 13:58:05
3.2K0
发布2022-05-19 13:58:05
举报
文章被收录于专栏:网络安全技术点滴分享

theos是iOS系统越狱插件开发的集成环境。在mac电脑中安装配置好theos后,就可以根据需求通过theos创建相应的插件工程对iOS app进行hook。

一、theos安装及环境配置

  1. 设置theos存放目录,在终端输入如下命令 export THEOS=/opt/theos
  2. 下载theos到设置的目录中,在终端输入如下命令
  3. git clone https://github.com/theos/theos.git $THEOS
  4. 安装插件工程需要的工具ldid及dpkg,在终端输入如下命令 brew install ldid (用于签名iOS可执行文件,在越狱iOS中取代Xcode自带的codesign) brew install dpkg-deb(新版的theos没有内置dpkg-deb,需要自己安装dpkg-deb。dpkg-deb是操作deb文件的工具,theos通过它将插件工程进行打包成deb文件)

二、创建插件工程测试

这里以创建一个hook iOS设备中的桌面程序SpringBoard为例,在终端输入如下命令

选择 10 按回车键后,创建tweak工程,用于hook iOS app。

工程开始创建,要求我们填入要创建的插件工程的项目名,这里填写 iosregreetings,如下图所示(项目名可以根据需要任意填)

填写插件工程的包名,这里填写 com.test.iosregreetings,如下图所示(包名也可以根据需要任意填)

填写插件工程的作者名,这里填写testTheos,如下图所示(作者名也可以根据需要任意填)

填写插件工程要hook的iOS app的Bundle identifier,我们要hook的iOS app是SpringBoard,它的Bundle identifier是 com.apple.springboard,因此这里填写的Bundle identifier是 com.apple.springboard,如下图所示(具体要hook哪个iOS app就填写对应的Bundle identifier)

填写插件工程要hook的iOS app的进程名字,如下图所示(填写进程名字目的是为了当我们要hook的时候,先杀掉它,让它重新启动后能够调用到我们hook的函数,达到我们要的目的)

最后,成功创建了一个插件工程,如下图所示(接下去就可以根据我们需要开始编写插件代码,代码可直接在Tweak.x中编写,或者新建一个src目录,将代码文件放入其中)

如我们要hook SpringBoard,让它弹出一个窗口,以及打印出日志,则在Tweak.x中写入我们的hook代码如下所示

代码语言:javascript
复制
#import <UIKit/UIKit.h>
%hook SpringBoard
-(void)applicationDidFinishLaunching:(id)application{
    %orig;
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"welcome" message:@"hellowrold" delegate:nil cancelButtonTitle:@"thanks" otherButtonTitles:nil];
    [alert show];
    [alert release];
    NSLog(@"SpringBoard is hooked");
}
%end

写完代码后,则需要修改一下目录中的Makefile配置文件,填写我们iOS设备的IP、port,引用的FRAMEWORKS及代码文件名称,如下所示

代码语言:javascript
复制
THEOS_DEVICE_IP = 127.0.0.1
THEOS_DEVICE_PORT = 2222
ARCHS = armv7 arm64
TARGET = iphone:latest:8.0
include $(THEOS)/makefiles/common.mk

TWEAK_NAME = iOSREGreetings
iOSREGreetings_FILES = Tweak.xm
iOSREGreetings_FRAMEWORKS = UIKit
include $(THEOS_MAKE_PATH)/tweak.mk
        
after-install::
        install.exec "killall -9 SpringBoard"

配置完Makefile后,终端切换到插件工程的根目录中,开始编译插件工程,在终端输入编译指令

log日志的话,可以通过 idevicesyslog 进行查看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全技术点滴分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档