对于ios上的app,hook 类(假设为CLASS_A)的某一个函数(假设为fun_a)时,需要调用微信中另一个类(假设为CLASS_B)的一个函数(假设为+fun_b),该如何解决?
我的部分代码如下:
%hook CLASS_A
-(id) fun_a{
…
id decData = [%c(CLASS_B) fun_b];
…
}
编译后的结果如下:
Tweak.xm:170:85: error: class method ‘+fun_b’ not found (return type defaults to ‘id’) [-Werror,-Wobjc-method-access]
id encData = [_logos_static_class_lookup$CLASS_B() fun_b];
^~~~~~~~~~~~~~
这个问题要怎么解决呢?
你说的头文件具体的是指什么?
我的理解是:假设我提到的CLASS_B具体为:UPWCryptUtil,该类是app中自定义的一个类, fun_b具体为:+ (id)encryptMessage:(id)arg1;
是不是在Tweak.xm中声明:
@interface UPWCryptUtil : NSObject
- (id)decryptMessage:(id)arg1;
- (id)encryptMessage:(id)arg1;
@end
…
%hook CLASS_A
-(id) fun_a{
…
id decData = [%c(UPWCryptUtil) encryptMessage:arg1];
…
}
编译后,依然报错:.
Undefined symbols for architecture arm64:
“OBJC_CLASS$_UPWCryptUtil”, referenced from:
objc-class-ref in Tweak.xm.a5aa2d0b.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我擦,哥哥要搞的就不是微信。只是拿微信举个例子。纯碎技术学习,不涉及灰黑产。