¿Cómo puedo ejecutar una aplicación OS X de Sandbox sin sandboxing?
-
28-10-2019 - |
Pregunta
Tengo una aplicación que se ejecuta con Sandboxing. ¿Cómo puedo ejecutarlo sin sandboxing? Supongamos que no puedo recompilar la aplicación con Sandboxing Off.
Solución
Esto funciona:
$ ditto MySandboxedApp.app MySandboxedApp.backup.app
$ codesign -f -s- MySandboxedApp.app
Tenga en cuenta el extra minus en "-s-".
Otros consejos
Hay muchas maneras en que todos conceptualmente lo mismo: hacer sandbox_init
un no-op. Por ejemplo, puedes usar gdb
Para esto, establezca el punto de interrupción en sandbox_init
y regrese de la función de inmediato. O podrías precargar una biblioteca que contiene una vacía sandbox_init
con DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES=foo.dylib
dónde 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 una caja de arena, como está diseñado, está haciendo que su sistema sea más vulnerable.