2012-09-21 10 views
5

アプリケーションがエンタイトルメントでコード化されている場合、DYLD_INSERT_LIBRARIESはMountion Lionで動作しなくなります。たとえば、Mountain Lionのエンタイトルメントで署名されたアプリケーションでDYLD_INSERT_LIBRARIESが動作しない

DYLD_INSERT_LIBRARIES=./mylib.dylib /Applications/Safari.app/Contents/MacOS/Safari 
    dyld: DYLD_ environment variables being ignored because main executeable is code signed with entitlements. 

これはおそらく、Mountion Lionに追加された新しいセキュリティ機能だとわかっています。 Mountain Lionで同様のことをする別の方法があるかどうかは誰でも知っていますか? ありがとう!

+0

SIMBLはMountain Lionで動作しますか?もしそうなら、代わりにそれを試すことができます。 – nneonneo

答えて

4

DYLD_INSERT_LIBRARIESをこのような用途に使用する方法はありません。

dyld strips all DYLD_制限されていると見なされるアプリケーションの環境変数には、setuid/setgidバイナリと特定のエンタイトルメントで署名されたバイナリが含まれます。 dyld sourceを見ると、これがどのように動作するかを見ることができます。特に、processRestrictedは、制限が適用されるべきかどうかの決定に責任があり、pruneEnvironmentVariablesは環境変数の特別な処理を行います。

関連する問題