2012-02-20 8 views

Respuesta

7

Esto funciona:

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

Nota al menos extra en "-s-".

+0

Fantástico, esto funciona como un regalo con las aplicaciones de AppStore. – Camsoft

0

Hay muchas maneras en que todas hacen conceptualmente lo mismo: hacer que sandbox_init no sea operativo. Por ejemplo, puede usar gdb para esto, establecer un punto de interrupción en sandbox_init y regresar de la función de inmediato. O puede precargar una biblioteca que contiene un sandbox_init vacío con DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES=foo.dylib donde foo.dylib solo contiene int sandbox_init() { return 0; }.

Tenga en cuenta que el sandboxing es voluntario y si ejecuta una aplicación fuera de un entorno limitado como está diseñado, está haciendo que su sistema sea más vulnerable.

+0

Intenté poner un punto de interrupción en sandbox_init y no fue golpeado. ¿Pensamientos? – Taylor

+0

Supongo que estamos hablando de cosas diferentes entonces - estaba hablando de sandboxing explícito (ver 'man sandbox') como lo usa OS X, pero supongo que estás hablando de la zona de pruebas de la tienda de aplicaciones que evidentemente es una especificación diferente. –

Cuestiones relacionadas