博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS逆向之旅(进阶篇) — HOOK(Logos)
阅读量:7186 次
发布时间:2019-06-29

本文共 1499 字,大约阅读时间需要 4 分钟。

简介

Logos本是Theos的一个组件,Monkey将里面libsubstrate.dylib移植出来,所以在Monkey工程下也可以使用Logos进行Hook代码

常用到的一些语法

  • HOOK 某个类里面的某个方法
%hook 类名- (void)方法名:(id)arg1 ....{}%end复制代码
  • 为某个类添加新的方法
%hook class_name// 添加一个响应事件%new-(void)touchesBegan:(NSSet
*)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES];}// 添加一个类方法%new+(void) new_func_name { NSLog(@"这是一个类方法!");}%end复制代码
  • 构造函数和析构函数
%ctor	构造函数%dtor	析构函数复制代码
  • 组的概念
%group group1%hook class_name- (void)func_name:(id)arg1 ....{    //修改替换成的内容}%end%end%group group2%hook class_name- (void)func_name:(id)arg1 ....{    //修改替换成的内容}%end%end// 定义了组就必须对其初始化%ctor{NSString * version = [UIDevice currentDevice].systemVersion;if(version.doubleValue >= 10){// 当iOS版本大于10则使用组2的Logos代码,否则使用组1的    %init(group2) }else{    %init(group1)}}复制代码
  • 常用的宏
%log       打印原始方法的所有参数信息%orig      执行原始的方法[%c(ViewController) click];      %c获取类复制代码

案例

本案例在Monkey工厂下,利用Logos语法实现与 中案例一模一样的功能。

  • 首先新建一个Monkey工程

  • 把App放到TargetApp目录下

  • 打开_6_HOOK_LogosDylib.xm文件,在文件上面进行开发

先删除掉运行的内容,开始写Logos语法进行HOOK

%hook WCAccountLoginControlLogic- (void) onFirstViewLogin {    UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"你想登录??" message:nil preferredStyle:UIAlertControllerStyleAlert];    [alertVC addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel handler:nil]];    [[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:alertVC animated:true completion:nil];}%end复制代码

通过这段简单的代码,就完成我们之前一系列复杂的HOOK,Logos是不是很强大呢? 来看看效果

转载地址:http://znfkm.baihongyu.com/

你可能感兴趣的文章
ZooKeeper管理指南
查看>>
jqGrid随浏览器缩放自适应宽度
查看>>
JavaScript函数补完:splice()数组操作
查看>>
Souce Control Management-EGit
查看>>
长连接的心跳及重连设计
查看>>
unity简介
查看>>
关闭selinux功能
查看>>
GHOSTXPSP3电脑爱好者V9.9美化修正版
查看>>
nginx多站点设置
查看>>
rsyslog
查看>>
app修改hosts
查看>>
Thinkpad T480 Win7 安装 INTEL HD620显卡驱动
查看>>
CentOS7修复python拯救yum
查看>>
oracle虚拟机安装
查看>>
2011,IT界的一些事。。。。。。
查看>>
生成多个不重复的随机数字php
查看>>
Linux常用命令总结
查看>>
理解加密算法
查看>>
Linux运维人员成长之路学习书籍推荐(未删减版)
查看>>
Visual Studio常用插件整理
查看>>