1. 编写逆向代码
1.1 编写逆向代码
经过了上面的介绍, 我们可以通过 Tweak.x 进行编写代码, %hook %end 属于 Logos 语法
%hook ViewController
-(void)btnClick {
UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"你好" message:@"laile " preferredStyle:(UIAlertControllerStyleAlert)];
[[[%c(ViewController) alloc ] init] presentViewController:alert animated:YES completion:nil];
%orig;
NSLog(@"teak 111 111");
NSLog(@"teak 111 222");
NSLog(@"teak 111 333");
}
%end
1.2 编辑 MakeFile 文件
在 Makefile 中加入环境变量,写清楚通过哪个IP和端口访问手机,如下所示,由于会把接口转发到本地的 2222 端口,所以这里可以这样写:
THOS_DEVICE_IP 手机IP
THOS_DEVICE_PORT 要访问的端口号
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=2222
如果不想每个项目的 Makefile 都编写 IP 和端口环境变量,也可以添加到用户配置文件中,如下:
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=10010
2. 编译-打包-安装
进入工程目录
2.1 编译成 dylib 动态库
make
2.2 把动态库打包成 deb 文件
make package
2.3 安装到手机
make install
后面两个可以一起的

安装成了

安装成功了, 但是我这里没有出现弹框, 这个问题还需要继续研究一下, 有大神知道的可以指点一下, 谢谢了
但是 可以通过真机调试, 发现已经成功代码注入了

但是需要注意:
** 这一步需要iOS 设备,USB 连接电脑!!! **
输入 iproxy 2222 22 把当前连接设备的 22 端口( SSH 端口),映射到电脑的 2222 端口。
可以通过 brew install usbmuxd 才能 使用 iproxy
Creating listening port 2222 for device port 22
waiting for connection
New connection for 2222->22, fd = 5
这个页面不能关闭的啊, 不然安装失败, 经验的啊
安装过程遇到的问题:
- 就是上面所说的的端口问题
kex_exchange_identification: read: Connection reset by peer
make: *** [internal-install] Error 255
新建终端页面,输入 ssh -p 2222 root@127.0.0.1 连接 iOS 设备。密码默认是:alpine
可以免密码登录, 见前面的文章
- 如果手机没有启动
$ killall -9 SpringBoard
End