【发布时间】:2012-04-07 08:51:32
【问题描述】:
如何在 UIApplication 中加载挂钩?
#import <CaptainHook/CaptainHook.h>
#import <SpringBoard/SpringBoard.h>
CHDeclareClass(SBAlertWindow);
CHOptimizedMethod(1, self, void, SBAlertWindow, displayAlert, id, alert) {
NSLog(@"load displayAlert!");
CHSuper(1, SBAlertWindow, displayAlert, alert);
}
CHDeclareClass(UIApplication)
CHOptimizedMethod(1, self, void, UIApplication, openURL, NSURL *, url) {
NSString *linkToOpen = [[NSURL alloc] initWithString:[url absoluteString]];
NSLog(@"dont load link: %@", linkToOpen);
CHSuper(1, UIApplication, openURL, url);
}
CHConstructor {
CHLoadLateClass(SBAlertWindow);
CHHook(1, SBAlertWindow, displayAlert);
CHLoadLateClass(UIApplication);
CHHook(1, UIApplication, openURL);
}
在我使用 SBAlertWindow 的测试中。 工作完美。 但 UIApplication 中的 openURL 不挂钩。
需要 makefile 中的一些配置吗?
【问题讨论】:
标签: objective-c ios5 hook jailbreak tweak