0

我正在开发一个 OS X 应用程序,我想隐藏它以防止 DTrace 检查。我知道这个P_LNOATTACH标志,但我读过的所有内容都告诉我有办法绕过它。可能吗?

4

2 回答 2

4

如前所述,您可以将 ptrace(2) 与 PT_DENY_ATTACH 一起使用,但 DTrace 或调试器可以拦截这些调用并禁用它们。此外,您希望您的用户在您的程序中使用 DTrace。如果有问题,让他们帮你诊断。唯一真正专有的软件可以在设备和云等受控环境中执行——一旦你把你的比特交给用户,唯一能理解你在做什么的方式就是时间。

于 2012-05-02T22:52:07.427 回答
1

是的,这是可能的。尝试对 iTunes 运行 DTrace;它不起作用。

您必须使用 PT_DENY_ATTACH 调用 ptrace 函数。

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man2/ptrace.2.html

但是,有各种方法可以使用各种 kext。谷歌周围,你会找到其中的一些。

对于 10.6 和 10.7: https ://github.com/dwalters/pt_deny_attach

嗯,由于 ASLR: Detecting and Shirking Off, the Debugger,看起来它在 10.8 中被破坏了

于 2012-05-02T01:29:44.107 回答