ptrace和exec:子进程可以在SIGTRAP之前响应ptrace吗?

时间:2014-02-11 16:59:08

标签: security unix signals ptrace

我最近遇到过这段代码:

if ((pid = fork()) == 0) {
ptrace(PT_TRACE_ME, 0, 0, 0); // trace
execl([originPath UTF8String], "", (char *) 0); // import binary memory into executable space

exit(2); // exit with err code 2 in case we could not import (this should not happen

你可能知道这个,因为它是一些非常基本的代码。我对操作系统的问题是,子进程现在“人质”无法以任何方式对其进行“跟踪”,因为execl()发送阻止子进程的SIGTRAP信号。在这种情况下,我能否以任何方式阻止攻击者读取我的进程内存并将其转储到磁盘上?

1 个答案:

答案 0 :(得分:0)

iOS和OS X现在有一个ptrace请求:PT_DENY_ATTACH,跟踪进程使用它来阻止调试器控制子进程。