%hook NSDictionary
-(id)objectForKey:(id)aKey{
if([aKey isEqualToString:@"status"]){
return @"1";
}else{
return %orig;
}
}
%end
我这样hook 完全不行
%hook NSDictionary
-(id)objectForKey:(id)aKey{
if([aKey isEqualToString:@"status"]){
return @"1";
}else{
return %orig;
}
}
%end
我这样hook 完全不行
我想修改他网络请求成功时候回调里的JSON值。他是直接在字典里objectForKey取值判断的。如何修改他取出的值?
应该是类簇的原因。建议hook回调
回调的是block 在hopper里没解析出来。
在lldb中我修改了r4值为1时(我想要的功能完成) 现在我想写一个hook 不清楚要hook那个类跟函数
你先看下这个字典的类型,因为类簇的原因这个字典的名字不一定是NSDictionary或者NSMutableDictionary
试了,感觉这个思路行不通… 根本就没勾住NSDictionary,勾住objectForKey在控制台打印都没输出…还有好的思路吗?
你runtime打印的类型信息就是NSDictionary?
可以看的出r4是NSDictionary
hook objc_msgSend
你的tweak filter是怎么写的?
他应该hook __NSCFDictionary. 跟filter应该无关
不是,应该是hook NSDictionary就可以了;我怀疑他的filter设置的是当前App的bundle id,而不是com.apple.foundation
Meh whatever
试了…我这修改参数是在C语言方法当中的…可能是因为在C语言方法中没勾住吧…我也试了勾住在该方法中所调用的方法输出控制台,控制台没有一个输出。 有其他解决方法吗…?
能把舌头先捋直了再问么?
直接修改网络请求返回的数据
不清楚如何修改…
试了NSLocale的objectForKey:,你说的正解。