MonkeyDev中hook系统NSLog函数

讲道理,利用fishhook进行hook其实就可以了

比如说我们的ViewDidLoad方法当中的方法里面有输出123,456 我们想要对其进行hook

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"123");

    NSLog(@"456");
}

创建一个monkeyDev的项目,然后在里面写入hook代码

#import <UIKit/UIKit.h>
#import "fishhook.h"

static void (*old_log)(NSString *format, ...);

void newLog(NSString *format, ...)
{
     format = [format stringByAppendingString:@"上钩"];

    old_log(format);
}

%hook ViewController

- (void)viewDidLoad {


    NSLog(@"哈哈");


    struct rebinding nslogBind;
    //函数的名称
    nslogBind.name="NSLog";
    //新的函数地址
    nslogBind.replacement = (void *)newLog;
    //保存原始函数的地址的变量的指针,只需要告诉它是指针就可以了,因为指针就占据8个字节
    nslogBind.replaced = (void **)&old_log;

    //定义数组
    struct rebinding rebs[] = {nslogBind};

    /*
     arg1:存放rebinding结构体的数组
     arg2:数组的长度
     */
    //可以通过这个函数交换很多组的函数
    rebind_symbols(rebs, 1);

      %orig;


}

%end

成功hook

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值