一个简单的MSHookFunction示例
#import <CoreFoundation/CoreFoundation.h>
#import <UIKit/UIKit.h>
#import “substrate.h”
static int (*org_func)();
int replace_func()
{
NSLog(@"this is the my hooked method");
return org_func();
}
%ctor
{
@autoreleasepool
{
// 此为Hook地址。能Hook住,但是游戏却打不开了
unsigned long fuc_addr1 = 0x4AF840 | 0x01 ;
MSHookFunction((void *)fuc_addr1,(void *)&replace_func,(void **)&org_func);
}
}
以上Tweak代码,编译安装后,运行程序,每多打开一次,在syslog里能看到,会多打印一条“this is the my hooked method”,但是游戏却会自动退出。感觉是执行这句时return org_func();发生了异常。
请问各位大大,这是怎么回事呀?