本文主要是介绍TikTok越狱检测之二 <调试器检测>,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
来了,调试器检测。总结如下,多多指教:
检测app 是否被附加调试:
原理就是检测父进程是否 launchd启动,在OS X和iOS 系统中,用户环境始于launchd,为用户态出现的第一个进程,为所有的进程的祖先,launchd 的进程PID = 1,
正常情况下,app的启动都是launchd来启动的。当app 被调试的时候,PID 的值则变成了调试器的PID,不等于 1
下面是检测TikTok app 是否被附加调试三种方法,
1.是通过 sysctl函数调用
2.通过getppid 函数调用
3.利用汇编代码svc 调用
检测和反检测都是一目了然的,矛和盾的关系都是平等的。
//非Debug状态,返回值为1,Debug状态返回Debugserver进程id
//首先,它检查父进程 id (ppid) 是否与 /sbin/launchd 相同,后者为 1。不相等则为调试状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
//非Debug状态,返回值为1,Debug状态返回Debugserver进程id
//首先,它检查父进程 id (ppid) 是否与 /sbin/launchd 相同,后者为 1。不相等则为调试状态
1 2 3 4 5 6 7 8 9 10 |
|
//通过svc 汇编代码来调用,非Debug状态,返回值为1,Debug状态返回Debugserver进程id
1 2 3 4 5 6 7 8 9 10 11 12 |
|
这篇关于TikTok越狱检测之二 <调试器检测>的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!