2012-05-02 3 views

답변

2

예, 가능합니다. 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에 대한

: 언급 한 바와 같이 Detecting, and Shirking Off, the Debugger

+0

10.7.x에서 작동하는 kext를 가리켜 대답을 향상시킬 수 있습니다. – ericg

-2

Wikipedia's DTrace articleArs Technica을 비롯한 다양한 웹 사이트에 따르면 P_LNOATTACH 플래그가 프로세스에 설정되어 있으면 Apple의 DTrace 구현에서 이에 대한 프로브를 실행하지 않습니다.

+0

내가 읽은 모든 것은 그 보호를 둘러싼 방법이 있음을 나타냅니다. 이 대답은 불완전한 것으로 보입니다. – ericg

+2

코드가 다른 사람의 컴퓨터에서 실행되고 있으면 구현할 수있는 모든 보호 수단이 항상있을 것입니다. 사람들은 수십 년 동안 완벽한 DRM을 발명하려고 노력해 왔으며, 그들은 균일하게 실패했습니다. 너는 더 잘할 수 없을거야. –

3

, 당신이 (2) PT_DENY_ATTACH와의 ptrace를 사용할 수 있지만, DTrace를 또는 디버거 할 수 있습니다 https://github.com/dwalters/pt_deny_attach

흠,이 때문에 ASLR 10.8로 생겼습니다 같은데 이러한 호출을 차단하고 비활성화합니다. 또한 사용자가 프로그램에서 DTrace를 사용하기를 원합니다. 문제가있는 경우 문제를 진단하도록 도와주십시오. 진정으로 독점적 인 유일한 소프트웨어는 어플라이언스 및 클라우드와 같은 제어 된 환경에서 실행됩니다. 사용자에게 비트를 건네면 현재 수행중인 작업을 이해하는 유일한 방법은 시간입니다.