美文网首页
<安全攻防之sysctl>

<安全攻防之sysctl>

作者: 高阿呆 | 来源:发表于2020-11-26 17:20 被阅读0次

sysctl系统内核函数

sysctl用于系统的检测和控制,监测进程是否被附加或者调试.定义定时器,每几秒检测一下应用是否被附加.

// 定时器轮询查询应用是否被调试,每秒钟检测一次
static dispatch_source_t timer;

BOOL isDebugger() {
    int name[4];
    name[0] = CTL_KERN; // 内核
    name[1] = KERN_PROC; // 查询进程
    name[2] = KERN_PROC_PID; // 通过进程ID查询
    name[3] = getpid(); // 获取进程ID
    
    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就是没有错误,其他就是错误码
    
    // (info.kp_proc.p_flag & P_TRACED) != 0; // 0没有调试 !=0有调试
    
    return ((info.kp_proc.p_flag & P_TRACED) != 0);
}

+ (void)load {
    timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0));
    dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
    dispatch_source_set_event_handler(timer, ^{
        if (isDebugger()) {
            exit(0);
        }
    });
    dispatch_resume(timer);
}

破解sysctl系统内核函数

  • 注入自定义静态/动态库,让破解代码在检测之前调用,从而达到破解的目的.如果防护代码是在库之前就已经完成防护功能,只能暴力破解二进制文件,从而达到破坏防护的目的.

相关文章

  • <安全攻防之sysctl>

    sysctl系统内核函数 sysctl用于系统的检测和控制,监测进程是否被附加或者调试.定义定时器,每几秒检测一下...

  • iOS安全攻防

    iOS安全攻防 iOS安全攻防

  • iOS安全攻防

    参考iOS安全攻防(二十三):Objective-C代码混淆代码混淆 md5 + base64[ios]安全攻防之...

  • iOS安全攻防1

    安全攻防

  • 攻防安全之工控终端安全

    编辑:小星 多一份网络防护技能 多一份信息安全保障 为了确保CIS的能成功的抵御攻击,每个企业都需要采取足够的安全...

  • XSS攻击与防御

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • Web安全之XSS攻防

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • Web安全之XSS攻击与防御小结

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • <安全攻防之循环>

    ① do...while循环 我们还是在程序的入口main函数写一个do...while循环,然后真机编译,显示包...

  • <安全攻防之switch>

    switch ① 当判断条件小于4时switch的汇编代码 ② 当条件大于4时switch执行default的汇编...

网友评论

      本文标题:<安全攻防之sysctl>

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