BOOL isdebugger(){
int name[4];//里面放入字节码 查询信息
name[0] = CTL_KERN;//内核
name[1] = KERN_PROC;//进程查询
name[2] = KERN_PROC_PID; //进程id来查
name[3] = getpid();
struct kinfo_proc info; //接受进程信息的结构体
size_t info_size = sizeof(info);//结构体大小
int error = sysctl(name, sizeof(name)/sizeof(*name), &info, &info_size, 0, 0);
assert(error==0);//0 没有错误
//p_flag 是一个数字,这个数字中的12位是不是1 来表示是不是debug
return ((info.kp_proc.p_flag & P_TRACED) !=0);
}
网友评论