iOS逆向 -- Theos-tweak安装实战

一、Theos 安装

Theos-wiki 上有比较详细的介绍,下面我简单记录一下自己的安装过程:

1.在 ~/.bash_profile下添加环境变量

export THEOS=/opt/theos
export PATH=$THEOS/bin/:$PATH

如果没有/opt/theos ,自行创建。

2. 环境变量添加成功后 执行 ,(如果环境变量不好使 source 一下)

git clone --recursive https://github.com/theos/theos.git $THEOS

 --recursive 这个参数必不可少,表示递归调用。

其实对使用最关键的就是 /opt/theos/bin/nic.pl文件,配置完环境变量后我们就可以 直接调用 nic.pl

3.安装ldid ,Idid用来专门签名iOS可执行文件的工具,用以在越狱iOS中取代Xcode自带的codesign。

brew install ldid

安装就先告一段落了 ,接下来动态分析

二、动态分析实战

首先usb连接手机,并ssh登录手机。

ps -A 找到虎牙进程 

18107 ??         0:05.59 /var/mobile/Containers/Bundle/Application/F378B195-0C4B-43D0-BEF7-457088276651/kiwi.app/kiwi

然后cycript 依附进程

cycript -p 18107

声明自己的 cy文件 @import com.evol 这里不懂的要翻一下之前章节 自定义cy文件。

1. 获取elappid = @"com.yy.kiwi" 这里保存一下,后来要用。

2. elcurrentvc() 获取当前ViewController 

3.elview(#0x12e576e80.view)获取当前视图层级

4.搜索登录的Unicode编码

定位到该按钮

这里可以用# 0x130121d10.hidden=true 来验证一下。

5.iOS逆向 -- Theos-tweak安装实战_第1张图片

通过以上几步 获取到按钮的点击事件 

也就是我们要hook的类HYLoginViewController 及方法loginButtonClick:

三、Hook

在mac的终端执行 nic.pl,该目录不能有汉字最好 (已经配置了环境变量)

iOS逆向 -- Theos-tweak安装实战_第2张图片

 然后就会生成

接下里修改 Makefile 文件

export THEOS_DEVICE_IP = 127.0.0.1
export THEOS_DEVICE_PORT = 12345

include $(THEOS)/makefiles/common.mk

TWEAK_NAME = HuYa
HuYa_FILES = Tweak.xm

include $(THEOS_MAKE_PATH)/tweak.mk

after-install::
	install.exec "killall -9 SpringBoard"

因为我这里使用的是USB链接 并将端口映射了12345 所以是这样的

export THEOS_DEVICE_IP = 127.0.0.1
export THEOS_DEVICE_PORT = 12345

这两个字段 可以直接配置到环境变量里面去 就不用每次都写了

接下来修改Tweak.xm文件 先将所有注释清空

%hook HYLoginViewController
- (void)loginButtonClick:(id) sender {
   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hook is coming" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
   [alert show];
}
%end

我这里是添加了一个 Alert 提示 Hook is coming 

然后 终端cd到该目录下 执行

 make package install

过一会儿你的手机便会重启,再次打开虎牙登录界面点击 登录 便会弹出Alert。

 

用MonkeyDev 写tweak 基本差不多 ,就不介绍了。

你可能感兴趣的:(iOS逆向 -- Theos-tweak安装实战)