如何在没有沙盒的情况下运行沙盒OS X应用程序?

时间:2012-02-20 17:47:26

标签: macos cocoa mac-app-store appstore-sandbox

我有一个使用沙盒运行的应用程序。如何在没有沙盒的情况下运行它?假设我不能只用沙箱重新编译应用程序。

2 个答案:

答案 0 :(得分:8)

这有效:

$ ditto MySandboxedApp.app MySandboxedApp.backup.app
$ codesign -f -s- MySandboxedApp.app

请注意“-s - ”中的额外减号。

答案 1 :(得分:0)

有许多方法可以在概念上做同样的事情 - 让sandbox_init成为无操作。例如,您可以使用gdb,在sandbox_init上设置断点并立即从函数返回。或者您可以预加载包含sandbox_initDYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES=foo.dylib的库,其中foo.dylib只包含int sandbox_init() { return 0; }

请注意,沙盒是自愿的,如果您按照设计在沙箱外运行应用程序,则会使您的系统更容易受到攻击。