【发布时间】:2011-04-14 10:11:41
【问题描述】:
在代码中,我会使用
#include <sys/types.h>
#include <sys/ptrace.h>
ptrace(PT_DENY_ATTACH, 0, 0, 0);
拒绝附加到进程。我想知道是否有办法将“ptrace()”重命名为不太明显的名称。我尝试将 ptrace.h 复制到我自己的头文件中并将 int ptrace 更改为其他内容,但这只是失败并出现未定义的符号错误。而且我找不到对该函数的任何其他引用:\
在此先感谢您提供的任何信息。
【问题讨论】:
-
为什么要重命名?
-
因为如果我使用它作为防止二进制破解的一部分,很容易将其修补出来,或者在 gdb 中为 ptrace 设置断点。如果它不称为 ptrace 或任何明显的东西,则更难找到。
-
更正,而不是阻止,只是让它变得尽可能困难。 :)
-
请注意,您在 C 文件中执行的任何宏魔术都不会改变运行时内存中的方法仍由
ptrace符号引用的事实,因此不会阻止在运行时注入代码的攻击。 -
ptrace(PT_DENY_ATTACH, ...)无论如何都帮不了你,因为有一个被盗版软件广泛使用的内核扩展来绕过它。
标签: objective-c c function ptrace