美文网首页
防止动态调试的代码

防止动态调试的代码

作者: CodingTom | 来源:发表于2021-02-25 10:32 被阅读0次
    
    //防止动态调试的代码
    #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)
    
    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[]) {
        
    #ifndef DEBUG
        disable_gdb();
    #endif
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
    }
    
    

    相关文章

      网友评论

          本文标题:防止动态调试的代码

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