2012-05-02 6 views
1

私はDTraceの検査から隠蔽したいOS Xアプリケーションを開発しています。私はP_LNOATTACH旗を知っていますが、私が読んだことは、その周りに道があることを私に伝えています。出来ますか? P_LNOATTACHフラグがプロセスのために設定されている場合DTraceからOS Xアプリを隠すことはできますか?

答えて

2

はい、可能です。 iTunesに対してDTraceを実行してみてください。それは動作しません。

PT_DENY_ATTACHを使用してptrace関数を呼び出す必要があります。

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

しかし、KEXT年代の様々なと、それを回避する方法があります。 Googleの周りにあなたがそれらのいくつかを見つけるでしょう。 10.6 & 10.7用

https://github.com/dwalters/pt_deny_attach

うーん、それが原因ASLRに10.8で壊れているように見えます:述べたように、あなたはPT_DENY_ATTACHと(2)のptraceを使用することができますDetecting, and Shirking Off, the Debugger

+0

10.7.xで動作するkextを指すことで、回答を改善できます – ericg

-2

Wikipedia's DTrace articleArs Technicaなど、ウェブの周りの様々な情報源によると、AppleのDTraceの実装は、それ上の任意のプローブを実行しません。

+0

私が読んだことはすべて、その保護を回避する方法があることを示しています。この回答は不完全なようです。 – ericg

+2

あなたのコードが他の誰かのコンピュータ上で実行されている場合、あなたが実装できる保護の周りには常に*方法があります。人々は何十年にもわたり完璧なDRMを発明しようとしており、一様に失敗しました。あなたはもっとうまくいくつもりはありません。 –

3

が、DTraceのか、デバッガができますこれらのコールを傍受して無効にします。さらに、ユーザーがプログラムでDTraceを使用するようにしたいとします。問題がある場合は、診断に役立ててください。真にプロプライエタリな唯一のソフトウェアは、アプライアンスやクラウドなどの制御された環境で実行されます。ユーザーにビットを渡すと、実行していることを理解するための唯一のことは時間です。

関連する問題