3

我按照http://brandontreb.com/beginning-jailbroken-ios-development-building-and-deployment 进行了调整。但是在我成功完成 helloworld 调整之后。
我挂钩fopen使用 MSHookFunction
,然后遇到链接错误

Making all for tweak hw...
 Preprocessing Tweak.xm...
 Compiling Tweak.xm...
 Linking tweak hw...
Undefined symbols for architecture armv7:
  "_MSHookFunction", referenced from:
      global constructors keyed to Tweak.xm.mmin Tweak.xm.51941273.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
make[2]: *** [.theos/obj/hw.dylib.ba964c90.unsigned] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [hw.all.tweak.variables] Error 2

这是 Tweak.xm

#import "substrate.h"

static FILE * (*s_orig_fopen) ( const char * filename, const char * mode );
static FILE * my_fopen ( const char * filename, const char * mode ){
    return s_orig_fopen(filename, mode);
}

static void entry(void)  __attribute__ ((constructor));
static void entry(void) {
    MSHookFunction(fopen, my_fopen, &s_orig_fopen);
}

有谁知道如何修理它?

4

1 回答 1

0

你可以试试这个:

#import "substrate.h"

static FILE * (*s_orig_fopen) ( const char * filename, const char * mode );
static FILE * my_fopen ( const char * filename, const char * mode ){
    return s_orig_fopen(filename, mode);
}

%ctor {
    MSHookFunction(fopen, my_fopen, &s_orig_fopen);
}
于 2014-06-17T01:47:27.780 回答