ios 防止运行注入代码

643 阅读1分钟

main.m中添加

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import <dlfcn.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

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 {
        [NBSAppAgent setStartOption:NBSOption_Net|NBSOption_Crash|NBSOption_UI];
        [NBSAppAgent startWithAppID:TINGYUNAPPKEY];
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

就可以防止在运行时注入代码