您的位置:首页 > 移动开发

检测调试器和trace

2015-12-04 19:59 465 查看
网络搜集好久才完成的初步成果,分享给大家:检测程序是否调试模式和trace,如果是则退出程序。

import

import

include

include

if !defined(PT_DENY_ATTACH)

define PT_DENY_ATTACH 31

endif // !defined(PT_DENY_ATTACH)

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 main(int argc, char * argv[])

{

// DEBUG模式下定义了 宏 “DEBUG” release模式下则没有

ifdef DEBUG

disable_gdb();


endif

//#ifndef DEBUG
// disable_gdb();//#endif

if (check_debugger()) {
disable_gdb();}
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息