关于反调试 ptrace 函数的问题

最近在学习反反调试的内容, 之前一直是囫囵吞枣, 对反反调试里面的原理其实都是不清楚的,所以从今天开始准备从头开始学习反反调试。

  1. 学习的文章地址: http://www.alonemonkey.com/2017/05/25/antiantidebug/

我发现文章中提到的,hook ptrace函数,在request==31的时候,return 0 即可,如下所示:

但是我通过写demo发现 , ptrace(PT_DENY_ATTACH, 0, 0, 0) 函数的返回值就是0呀。

第二个问题就是:


我hook ptrace 这个函数之后,啥都不做, 我demo里面 ptrace(PT_DENY_ATTACH, 0, 0, 0) 函数的返回值就是-1了,这是为什么呢,希望前辈赐教

跟返回值无关,这个函数的作用是告诉内核禁止调试器附加,你只要不调用orig就相当于跳过了告诉内核这一个步骤

我发现调用了orig, 也可以调试了, (按道理调用了orig, 就是告诉内核禁止调试器附加,应该不能调试的) 这是啥情况