重命名ptrace funct其他什么?怎么样?

时间:2011-04-14 10:11:42

标签: objective-c c function ptrace

在代码中,我会使用

#include <sys/types.h>

#include <sys/ptrace.h>

ptrace(PT_DENY_ATTACH, 0, 0, 0);

拒绝附加到流程。我想知道是否有办法将“ptrace()”重命名为不太明显的东西。我尝试将ptrace.h复制到我自己的头文件中并将int ptrace更改为其他内容,但是因为未定义的符号错误而失败了。我找不到任何其他函数的引用:\

提前感谢您的任何事情。

2 个答案:

答案 0 :(得分:3)

ptrace是系统调用。即使您在C代码中重命名了该功能,仍然必须进行实际的ptrace调用,因此例如strace输出(包含所有参数)

使用宏技巧只会使它显得不那么明显(你需要两个greps而不是一个才能在你的代码库中找到它)。所以我真的没有看到这一点。 (宏技巧不会改变编译代码的任何内容。)

您可以尝试使用syscall自己运行实际的系统调用,但这是很多工作,到目前为止仍然不会向strace隐藏任何内容。这将使得在gdb中打破它变得更加困难。

所以IMO:你想做的事情是不值得的。

答案 1 :(得分:-1)

在标题中使用#define创建新的宏:

#define MyTrace(a,b,c,d) ptrace(a,b,c,d)