美文网首页
判断当前程序是不是被调试

判断当前程序是不是被调试

作者: MAXZhangZZ | 来源:发表于2018-06-13 11:26 被阅读0次
    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);
        
    }
    

    相关文章

      网友评论

          本文标题:判断当前程序是不是被调试

          本文链接:https://www.haomeiwen.com/subject/xacjeftx.html