美文网首页
iOS逆向-ptrace反调试

iOS逆向-ptrace反调试

作者: l富文本l | 来源:发表于2019-03-19 17:06 被阅读0次
    ptrace头文件不能直接导入app工程,可以直接复制ptrace.h的文件到自己新建的MyPtrace.h中,然后调用
    ptrace.h路径:/usr/include/sys/ptrace.h
    #import <UIKit/UIKit.h>
    #import "AppDelegate.h"
    #import "MyPtrace.h"
    #import <dlfcn.h>
    
    int main(int argc, char * argv[]) {
        
        /**
         反调试
         */
        #ifndef PT_DENY_ATTACH
        #define PT_DENY_ATTACH 31
        #endif
        //第一次,通过符号直接调用ptrace
        typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);
        ptrace(PT_DENY_ATTACH, 0, 0, 0);
        
        //第二次,通过dlopen,dlsym调用
        void *handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);
        ptrace_ptr_t ptrace_ptr = (ptrace_ptr_t)dlsym(handle, "ptrace");
        ptrace_ptr(PT_DENY_ATTACH,0,0,0);
        
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
    }
    
    

    Xcode运行之后会直接断开连接

    相关文章

      网友评论

          本文标题:iOS逆向-ptrace反调试

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