iOS Hook相关教程 工具篇

邢杰
2023-12-01

iOS hook相关教程 工具篇

osx 工具集

class-dump 建议安装

class-dump,顾名思义,就是用来dump目标对象的class信息的工具。该工具利用Objective-C语言的runtime特性,将存储在Mach-O文件中的头部信息提取出来,并生成对应的.h文件。目前只用拿到oc对象的头文件。

## XXX 表示需要dump的可执行文件,之后介绍怎么获取
## /xxx/xxx/xxx 表示输出路径。
## 其他命令可以参考man
## 此外,该工具只能dump撬壳之后的可执行文件
class-dump -S -s -H XXX -o /xxx/xxx/xxx

Theos 必须安装

Theos是一个越狱开发包,与其他越狱工具相比,其最大的特点就是简单。其底层原理为dyld,可用于运行前注入。手残的可以直接安装mokeydev或者iosopendev。具体安装可参考:https://www.jianshu.com/p/2a2de106dd2e

# 创建工程,建议设置全局变量,用命令行跑
./theos/bin/nic.pl 
# nic.pl

调用上面的命令,会出现下面的提示

NIC 2.0 - New Instance Creator ------------------------------ 
[1.] iphone/application 
[2.] iphone/cydget 
[3.] iphone/framework 
[4.] iphone/library 
[5.] iphone/notification_center_widget 
[6.] iphone/preference_bundle 
[7.] iphone/sbsettingstoggle 
[8.] iphone/tool 
[9.] iphone/tweak 
[10.] iphone/xpc_service

选择9,输出tweak工程,继续

## 项目名字
Project Name (required):kiwihook

## 包名字
Package Name [com.yourcompany.iosreproject]:com.huya.kiwihook

## 作者名字
Author/Maintainer Name [snakeninny]: ysq

## 包名字,需要openssh去ios里面查询,我这里已经知道需要hook的包名字
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]:com.yy.kiwi

## 需要重新启动的进程
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]:kiwi

完成之后看下工程目录,长这个样子:

Makefile
kiwihook.plist
Tweak.x		
control

Tweak.x文件为空,control记录着相关信息,plist记录着需要hook的包信息,makefile为make编译脚本。

我们在这个工程下面创建./build.sh,用以自定义安装程序。其内容可参考git工程里面的文件。关于Makefile统一写法,我们可以把Makefile改成如下:

## 需要安装的手机ip,需要保证手机登陆和mac登陆的局域网是同一个。
export THEOS_DEVICE_IP = xxx.xxx.xxx.xxx
## 需要安装的手机端口,有openssh配置或者
#export THEOS_DEVICE_PORT = xxxx

INSTALL_TARGET_PROCESSES = kiwi

include $(THEOS)/makefiles/common.mk

TWEAK_NAME = kiwihook

ARCHS = armv7 arm64
TARGET = iphone:latest:7.0

kiwihook_FILES = Tweak.x
kiwihook_CFLAGS = -fobjc-arc

## 导入公共模块,UIKit
kiwihook_FRAMEWORKS = UIKit

## 导入自定义库
kiwihook_LDFLAGS += hytweak

include $(THEOS_MAKE_PATH)/tweak.mk

之后就可以使用了,执行命令./build.sh。
关于其语法,可自行参考git工程的书籍,iOS应用逆向工程(第2版)这本书。或者网上查询相关tweak资料。

Reveal

不推荐安装,说句实在话,从界面入手获取到的信息特别有限,特别是音视频开发相关。

IDA 建议安装

安装网址: https://blog.csdn.net/u010953692/article/details/94907317。

需要csdn积分可以找我拿。安装过程会遇到崩溃,网上找一下吧。主要用到的是ida64版本。

快捷键F5可以直接查看反汇编代码,特别方便。其他的就和平时的工具一样,没什么好说的。

iFunBox 建议安装

安装网址: http://www.i-funbox.com/zh-cn/index.html

需要配合cycript使用,可以用于捞日志,dump流,查看系统文件等。

此外,使用这种工具都需要安装Apple File Counduit "2"这个工具,在手机Cydia->软件源->Cydia/Telesphoreo->系统->Apple File Counduit "2"安装。就可以使用了。

dyld_decache 不推荐安装

Theos底层工具,如果对Theos底层感兴趣的同学,可以自行研究这个工具,说不定下一个Theos的工具作者就是你。

frida-ios-dump 推荐

撬壳工具,对于appshop里面下载的应用,必须通过撬壳才能进行对应的操作。不过即使没有撬壳,也不影响theos的使用,所以不是必须的,只是撬壳后的工具才能用ida,class-dump这类工具。

安装地址:https://www.jianshu.com/p/c26938760ee0

注意,该工具是python3的,需要使用python3来进行撬壳,另外,ios需要安装openssh才能。

ios工具集

CydiaSubstrate 推荐安装

其实我没有安装,不过看了大多数hook,这个工具感觉是必备的。

Cycript 必须安装

为什么是必须安装呢,没这工具,99%活都干不了,还有1%是Theos的。

安装教程: 直接在Cydia里面搜索cycript,点击安装,就可以使用了。

iFile

同样,用于重置dropbear和openssh需要用到,这是由于在ios上写命令行着实恶心。不过也必须要写。同样的,在Cydia里面安装就好了。

MTerminal

手机可使用的命令行工具。同样,在Cydia里面安装就好了。

OpenSSH 必备

用于和osx通讯的工具,可参考linux的openssh使用教程,在10.x的ios手机上,只能使用dropbear来进行连接。

关于手机的越狱

9.0~11.0都可以在爱思助手上面一键越狱。不会变砖。

12.0 unc0ver工具,没验证过。

13.0以上 据说变砖头概率巨高,建议别尝试,等之后有一套同一个方案再来尝试也不迟。

 类似资料: