各位大神,我想要hook系统的SCNetworkReachabilityGetFlags 函数,但是没有看到效果,也没有看到输出,还请指点一下。谢谢先。plist里面,已经写入了相应的app的bid 。 看到了输出 MS:Notice: Injecting: com.test.test [test] (847.27)(bid改了 )。但是实际没有效果,也没有看到输出。
请问哪里写的不对呢?
#import <substrate.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <UIKit/UIKit.h>
Boolean
(*orig_SCNetworkReachabilityGetFlags) (
SCNetworkReachabilityRef target,
SCNetworkReachabilityFlags *flags
);
Boolean
repl_SCNetworkReachabilityGetFlags (
SCNetworkReachabilityRef target,
SCNetworkReachabilityFlags *flags
)
{
Boolean result;
NSLog(@"videodemo from repl");
if([NSBundle mainBundle].bundleIdentifier isEqualToString:@"com.test.test"])
{
NSLog(@"videodemo NSBundle fit");
SCNetworkReachabilityFlags fg = 0;
result = orig_SCNetworkReachabilityGetFlags(target,&fg);
printf("videodemo haha\n");
*flags = fg & ~(1u<<18);
}
else{
return orig_SCNetworkReachabilityGetFlags(target,flags);
}
return result;
}
%ctor
{
MSHookFunction((Boolean*)MSFindSymbol(NULL,"SCNetworkReachabilityGetFlags") ,(Boolean*)repl_SCNetworkReachabilityGetFlags,(Boolean**)&orig_SCNetworkReachabilityGetFlags);
}