DTrace에서 검사 할 때 숨기고 싶은 OS X 응용 프로그램을 개발 중입니다. 나는 P_LNOATTACH
플래그를 알고 있지만 읽은 모든 것은 그 주위에 방법이 있다는 것을 알려줍니다. 가능한가?DTrace에서 OS X 응용 프로그램을 숨길 수 있습니까?
답변
예, 가능합니다. 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이
Wikipedia's DTrace article 및 Ars Technica을 비롯한 다양한 웹 사이트에 따르면 P_LNOATTACH
플래그가 프로세스에 설정되어 있으면 Apple의 DTrace 구현에서 이에 대한 프로브를 실행하지 않습니다.
내가 읽은 모든 것은 그 보호를 둘러싼 방법이 있음을 나타냅니다. 이 대답은 불완전한 것으로 보입니다. – ericg
코드가 다른 사람의 컴퓨터에서 실행되고 있으면 구현할 수있는 모든 보호 수단이 항상있을 것입니다. 사람들은 수십 년 동안 완벽한 DRM을 발명하려고 노력해 왔으며, 그들은 균일하게 실패했습니다. 너는 더 잘할 수 없을거야. –
, 당신이 (2) PT_DENY_ATTACH와의 ptrace를 사용할 수 있지만, DTrace를 또는 디버거 할 수 있습니다 https://github.com/dwalters/pt_deny_attach
흠,이 때문에 ASLR 10.8로 생겼습니다 같은데 이러한 호출을 차단하고 비활성화합니다. 또한 사용자가 프로그램에서 DTrace를 사용하기를 원합니다. 문제가있는 경우 문제를 진단하도록 도와주십시오. 진정으로 독점적 인 유일한 소프트웨어는 어플라이언스 및 클라우드와 같은 제어 된 환경에서 실행됩니다. 사용자에게 비트를 건네면 현재 수행중인 작업을 이해하는 유일한 방법은 시간입니다.
10.7.x에서 작동하는 kext를 가리켜 대답을 향상시킬 수 있습니다. – ericg