Kum havuzunu kullanarak çalışan bir uygulamam var. Korumalı alan olmadan nasıl çalıştırabilirim? Uygulamayı yalnızca kum havuzu kapalıyken yeniden derleyemediğimi varsayalım.Korumalı bir OS X uygulamasını kum havuzu olmadan nasıl çalıştırabilirim?
cevap
Bu çalışır:
$ ditto MySandboxedApp.app MySandboxedApp.backup.app
$ codesign -f -s- MySandboxedApp.app
Not "-s-" ekstra eksi.
Tümünün kavramsal olarak aynı şeyi yapmasının birçok yolu vardır - sandbox_init
'u no-op yapın. Örneğin, bunun için gdb
kullanabilir, sandbox_init
üzerinde kesme noktası ayarlayabilir ve işlevden hemen dönebilirsiniz. Ya da, boş bir içeren bir kitaplığı önyükleyebilirsiniz, burada foo.dylib
yalnızca int sandbox_init() { return 0; }
içerir.
Korumalı alanların isteğe bağlı olduğunu ve tasarlandığınız şekilde sanal alanın dışında bir uygulama çalıştırırsanız, sisteminizi daha savunmasız bıraktığınızı unutmayın.
Sandbox_init üzerinde bir kesme noktası koymaya çalıştım ve vurulmadı. Düşünceler? – Taylor
Sanırım o zaman farklı şeyler hakkında konuşuyoruz - OS X tarafından kullanılan açık kum havuzu (bkz. "Adam sandbox") hakkında konuşuyordum, ama sanırım tamamen farklı bir spesifikasyon olan uygulama deposu korumasından bahsediyorsunuz. –
Fantastik, bu AppStore uygulamaları ile bir muamele çalışır. – Camsoft