ios逆向tweak中使用MSHookIvar获取原有成员变量和使用自创成员变量的代替方法

编程入门 行业动态 更新时间:2024-10-24 12:27:26

ios逆向tweak中使用MSHookIvar获取原有成员<a href=https://www.elefans.com/category/jswz/34/1771380.html style=变量和使用自创成员变量的代替方法"/>

ios逆向tweak中使用MSHookIvar获取原有成员变量和使用自创成员变量的代替方法

文章目录

  • MSHookIvar的作用
    • 获取类中原有的成员变量,不可以获取自己创建的成员变量格式如下
    • 注意:不可以获取到自己在tweak里创建的成员变量
  • 代替方法在hook中使用自创的成员变量

本文是我研究了2天最后曲线救国,用文件内的全局变量代替hook代码中自创的成员变量的方法.MSHookIvar只能获取app包中原来就有的成员变量,不能获取自创的成员变量

MSHookIvar的作用

获取类中原有的成员变量,不可以获取自己创建的成员变量格式如下

MSHookIvar<类型>(self,"_成员变量名")

下面的原来的类中有成员变量label1

@property (weak, nonatomic) IBOutlet UILabel *label1;

在获取label1的时候要加上下滑线,因为oc文件编译的时候转换成c++文件,会把成员变量前面添加下滑线_
所以获取的时候要加上下滑线

UILabel *label1 = MSHookIvar<UILabel*>(self,"_label1");//
label1.text = @"hook成了123";

注意:不可以获取到自己在tweak里创建的成员变量

下面代码编译通过,但是运行会闪退
因为MSHookIvar不能获取自己新建的成员变量,只能获取到之前app包里面已经写好的成员变量

#import <UIKit/UIKit.h>
@interface  ViewController:UIViewController //为了使用self
@property (nonatomic)__strong UIView *_m_v;
@end
%hook ViewController
- (void)viewDidAppear:(BOOL)animated{%orig;UILabel *label1 = MSHookIvar<UILabel*>(self,"_label1");//MSHookIvar<类型>(self,"_成员变量名"),可以获取原来程序里的成员变量,但是不可以获取到自己在tweak里创建的成员变量label1.text = @"hook成了123";UIView * testV = MSHookIvar<UIView*>(self,"_m_v");//这行testV没有被赋值,因为没获取到_m_vtestV = [[UIView alloc]initWithFrame:CGRectMake(20, 100, 200 , 200)];//运行到这行闪退,因为testV没有获取testV.backgroundColor = [UIColor redColor];//这行不能删掉,否则编译报错testV没有被使用}
}
%end

代替方法在hook中使用自创的成员变量

目前还不能使用自创的成员变量,但是可以用下面方法代替
static是文件内全局变量
例如:

#import <UIKit/UIKit.h>
@interface  ViewController:UIViewController //为了使用self
@endstatic UIView *v1;//自定义一个文件内的全局变量,可以在不同函数中传递和保存数据
%hook ViewController- (void)viewDidAppear:(BOOL)animated{%orig;v1 = [[UIView alloc]initWithFrame:CGRectMake(20, 100, 200 , 200)];testV.backgroundColor = [UIColor redColor];}
}
%end

更多推荐

ios逆向tweak中使用MSHookIvar获取原有成员变量和使用自创成员变量的代替方法

本文发布于:2024-02-11 08:18:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679994.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   成员   自创   方法   ios

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!