8
の実装: http://theiphonewiki.com/wiki/index.php?title=Bugging_Debuggersは、私がこのウィキから次の反海賊行為のコードを実装するtryignてきたPT_DENY_ATTACH著作権侵害防止コード
しかし
Program exited with status value:45.
と手紙私のアプリは終了し、それを次のようにもかかわらず、
私はそれをテストします。私が関数呼び出しdisable_gdb()をコメントアウトした場合;アプリは正常に実行されます。
私は間違っているとは何ですか?それとも、xcodeが添付されている間にコードが実行されていて終了していますか?意図したとおり
#import <UIKit/UIKit.h>
#import <dlfcn.h>
#import <sys/types.h>
typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);
#if !defined(PT_DENY_ATTACH)
#define PT_DENY_ATTACH 31
#endif // !defined(PT_DENY_ATTACH)
int main(int argc, char *argv[])
{
NSLog(@"Main Called ");
disable_gdb();
NSLog(@"After cracker code");
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
void disable_gdb()
{
void* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);
ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");
ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);
dlclose(handle);
}
int main3(int argc, char *argv[])
{
return -1;
}
親切よろしく、
-code
だから、答えはあなたのアプリケーションをデバッグするからデバッガを防ぐためにしようではない点が存在しないということですか? – Chicowitz