如何hook 结构体

2018-05-03  本文已影响18人  MdWhat

原生代码

struct student{
    long number;
    char name[20];
    char gender;
    int age;
    float salary;
    char address[80];
};
@interface ViewController (){
    struct student _aa;
}
@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    [self test1];
    NSLog(@"       _aa.number = %ld, _aa.age = %d",_aa.number,_aa.age);
}

- (void)test1{
    _aa.number = 11;
    _aa.age = 11;
    NSLog(@"test1: _aa.number = %ld, _aa.age = %d",_aa.number,_aa.age);
}

hook 代码

struct student {
    long long number;
    char name[20];
    char gender;
    int age;
    float salary;
    char address[80];
};
%hook ViewController
- (void)test1{
    %orig;
    struct student *aa = &MSHookIvar<struct student>(self, "_aa");
    aa->age = 18;
}
%end

日志打印

test1: _aa.number = 11, _aa.age = 11
       _aa.number = 11, _aa.age = 18
上一篇 下一篇

猜你喜欢

热点阅读