微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决重命名ptrace funct其他名称?怎么样?

| 在代码中,我会使用
#include <sys/types.h>
#include <sys/ptrace.h>
ptrace(PT_DENY_ATTACH,0);
拒绝附加到该过程。我想知道是否可以将\“ ptrace()\”重命名为不太明显的名称。我尝试将ptrace.h复制到我自己的头文件中,然后将int ptrace更改为其他内容,但是由于未定义的符号错误而失败。而且我找不到对该函数的其他引用:\\ 预先感谢您对此的任何关注。     

解决方法

ptrace
是系统调用。即使您在
C
代码中重命名了该函数,仍然必须进行实际的
ptrace
调用,因此在例如
strace
输出(带有所有参数)中将可见。 使用宏技巧只会使其变得不那么明显(您需要两个
greps
而不是一个在代码库中找到它)。所以我真的不明白这一点。 (宏技巧不会更改已编译的代码。) 您可以尝试使用
syscall
自己运行实际的syscall,但这需要大量工作,并且到目前为止仍无法隐藏
strace
的东西。在gdb中打破它会变得有点困难。 因此,IMO:您尝试做的事情不值得付出努力。     ,在标题中使用#define创建新的宏:
#define MyTrace(a,b,c,d) ptrace(a,d)
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。