比如IOS的类方法 我是不是可以直接在 Tweak.xm 直接写一个类方法 我在这个文件里
的所以hook都可以实现
因为我是只写Tweak.xm 没有对app进行重签名
暂时还没学习app进行重签名 还在学习Tweak.xm编写
我看他们重签名app是写一个类 再到Tweak.xm里引用
不知道直接在Tweak.xm这个想法是不是正确的
比如IOS的类方法 我是不是可以直接在 Tweak.xm 直接写一个类方法 我在这个文件里
的所以hook都可以实现
因为我是只写Tweak.xm 没有对app进行重签名
暂时还没学习app进行重签名 还在学习Tweak.xm编写
我看他们重签名app是写一个类 再到Tweak.xm里引用
不知道直接在Tweak.xm这个想法是不是正确的
我读了5遍,你是想问在tweak中能不能写类方法,还是想问能不能实现它所有hook,还是想问用类方法能不能实现他的重签名,还是想问在tweak中写个类方法能不能实现它所有hook再重签名!?那么问题来了,tweak.xm这个想法是什么
什么玩意儿?
@字节跳动 进来招人
抱歉 描述不好
比如
%hook
A
%end
和
%hook
B
%end
A和B都要对 NSString 都要调用 类方法 +(void)buttonAction;
如果我写在 A时 B也可以使用
按照我自己的习惯 对于A,B都使用的 类方法 想重新写C来放这个类方法
+(void)buttonAction;
怎么在Tweak.xm 中无中生有 写这个C来存放 方法
看其他人代码都是 ipa 结合 Tweak.xm 一起的 好像是在Xcode的新建个 C
然后在Tweak.xm引用 这个C
我还没学会ipa和Tweak.xm 重新生成一个新的包开发的方法
就想在 Tweak.xm 直接生成这个C类独立出+(void)buttonAction;这个类方法 直接用于A和B 中 不知道这个想法 是不是成立的
hook A 是hook A类的方法,hook B是hook B类的方法,你新增个C类,在AB中调用C类的+(void)buttonAction类方法相当于作用于AB类的C类同名方法(相当于新增方法),并没有对AB产生影响,打个比方:ViewControllerA 和ViewControllerB 都各自有一个UIButton btnA 和btnB ,他们都绑定一个名字都为-onClickBtn:的方法,你现在新增一个ViewControllerC 也创建了个btnC 绑定了个onClickBtn:方法,并没有作用到AB啊。
嗯 谢大佬 知道了
我 class-dump 出 app 的头文件
这些文件有A,B的头文件 没有 C 这个头文件
在Tweak.xm 直接添加
方式一
@interface C
-(void)buttonAction
@end
%hook C
%new
-(NSString *)buttonAction{}
%end
但是我在A,B调用到[%c(C) buttonAction] 编译过了 但是buttonAction没输出
方式二
还是有 我把这方法写在 NSString 中
#import <Foundation/Foundation.h>
@interface NSString
-(void)buttonAction
@end
%hook NSString
%new
-(NSString *)buttonAction{}
%end
但是我在A,B调用到[%c(NSString) buttonAction] 编译不过 找不到这个方法
方式三
只有写在 A
@interface A
-(void)buttonAction
@end
%hook A
%new
-(NSString *)buttonAction{}
%end
我在B调用到[%c(A) buttonAction] 只有这样才是正确
请问大佬 方式一 和 方式二 这个想法是错的吗 还是 我写的不够完整
有点疑问 还是只能用方式三 这个和我平常编码习惯 有点出入
所以才有 方式一 和 方式二
请大佬指定下我 方法一 和 方式二 问题
谢谢
但是我在A,B调用到[%c© buttonAction] 编译过了 但是buttonAction没输出
你没写方法正文当然没输出了
这个是弄个略写 说明的个大概 意思 我自己写的时候是有值的 大佬让我很尴尬
#import <CommonCrypto/CommonDigest.h>
+(NSString *)md5HexDigest:(NSString *)input{
const char* str = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, (CC_LONG)strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
[ret appendFormat:@"%02x",result[i]];
}
return ret;
}
完整是这个
我oc开发刚刚好用到 这个
先弄个md5 加密 到 Tweak.xm 里面完一下
上面是nsstring的buttonAction,下面是CommonCrypto啥啥啥。你到底想问什么
@字节跳动 再进来招人
狗神的小黄书(iOS应用逆向工程),还有庆哥的iOS逆向应用与安全