无标题文章

一、新建 Xcode 工程,运行在真机上

需要记住bundleID : com.swhl.HOOK-APP

新建Xcode工程

<- (void)setUpButton {

self.view.backgroundColor = [UIColor lightGrayColor];

UIButton *btn = [UIButton new];

btn.frame = CGRectMake(0, 0, 100, 40);

btn.center = self.view.center;

btn.backgroundColor = [UIColor orangeColor];

[self.view addSubview:btn];

[btn setTitle:@"接收新消息" forState:UIControlStateNormal];

[btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];

}

- (void)buttonClick {

UIAlertController *alerView = [UIAlertController alertControllerWithTitle:@"提示" message:@"啥都没有" preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *cancelAction =[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];

[alerView addAction:cancelAction];

[self presentViewController:alerView animated:YES completion:nil];

}>

在真机上效果

未hook.gif

二、新建 Tweak 工程

tweak.xm 文件本质为 dylib 动态库文件

1.打开终端,找到theos安装目录

屏幕快照 2016-08-26 17.36.27.png

2.创建tweak工程之后

当前目录下会产生你创建的tweak文件夹

屏幕快照 2016-08-26 17.48.29.png

3 Makefile

Makefile中加入3行代码

屏幕快照 2016-08-26 18.00.59.png

4.Tweak.xm

hook的相关代码将写在这个文件中。拦截了ViewController 中的 buttonClick 消息,并且可以重写再发出。

%hook - %end 是固定写法,可以去了解下。

%hook ViewController

- (void)buttonClick

{

UIAlertController *alerView = [UIAlertController alertControllerWithTitle:@"恭  喜" message:@"新消息被拦截" preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *cancelAction =[UIAlertAction actionWithTitle:@"Theos:iOS越狱插件开发工具" style:UIAlertActionStyleCancel handler:nil];

[alerView addAction:cancelAction];

[self presentViewController:alerView animated:YES completion:nil];

}

%end

三、 通过 make package install 安装在Cydia上

终端切到hookDemo目录下,此时保持电脑手机在同一wifi下。

make package install

屏幕快照 2016-08-26 18.15.21.png

root@IP 's password : alpine

屏幕快照 2016-08-26 18.15.03.png

成功

你可能感兴趣的:(无标题文章)