如题,新手在学习中遇到这个问题。在一个类中有如下这样的一个属性,怎么hook修改其中的值呢。目前知道属性会生成两个实例方法,str和setStr方法,hook这俩方法目测没有更改,不知还有其他方法吗?求指导
@ interface ViewController : UIViewController
@ property (nonatomic, strong) NSString* str;
@ end
如题,新手在学习中遇到这个问题。在一个类中有如下这样的一个属性,怎么hook修改其中的值呢。目前知道属性会生成两个实例方法,str和setStr方法,hook这俩方法目测没有更改,不知还有其他方法吗?求指导
@ interface ViewController : UIViewController
@ property (nonatomic, strong) NSString* str;
@ end
哎呀,为啥我的这么没人回复呢,连围观的都木有啊
get方法hook不了?
不行啊,理论上可行的方案,就是不知道为什么不行!而且我用ida看了一下,里面的确有get的方法,hook其他的普通方法都可行,就这个不行。奇怪了
你tweak怎么写的
%hook ViewController
- (NSString* ) str{
NSString* data = @"这是Hook后的字符串!22222!!";
return data;
}
- (void) setStr:(id)arg{
NSString* data = @"这是Hook后的字符串!22222!!";
%orig(data);
}
%end
这样的,getter和setter都加上了,还是不行
确定程序有调用get和set?
确定,专门写的测试app
哈哈,最后终于好使了!发现个问题,调用的时候直接用str访问的话hook不成功,如果用self.str的话就可以了。估计直接用str的话是直接访问这个变量了
建议学好正向开发,_str是直接访问,self.str才是调用get方法
嗯,我是搞android逆向的,刚开始搞ios的,OC的开发也刚看了几天。多谢了哈!!!