最近有个安全漏洞的修复需求,需要对项目进行反调试处理,看了很多博客和文章,大多数都是只贴出了部分代码,不是很全面,所以总结了一下.
OC部分
首先要在工程的main.m类中导入头文件#import <dlfcn.h>,不导入头文件会报很多错误,好多文章并没有提到这个
代码部分入下图:

如果还是不太理解可以查看demo
Swift部分
Swift里面并没有main函数,但是AppDelegate里面有一个@UIApplicationMain,去掉的话程序就跑步起来,我们可以增加一个main.swift,增加如下代码
autoreleasepool {
UIApplicationMain(
NSStringFromClass(AppDelegate.self)
)
}
接下来就需要新建一个ptrace.c的文件,去编写disable_gdb这个函数,在新建这个ptrace.c文件时Xcode会自动生成一个Bridging-Header.h文件,将函数的定义写在里面。接下来你就可以在main.swift里面加上disable_gdb()了
整个工程可以通过demo来查看
参考链接:https://www.jianshu.com/p/8e6ae6a4f457
网友评论