Come posso eseguire un'app OS X sandbox senza sandboxing?
-
28-10-2019 - |
Domanda
Ho un'app che funziona usando sandboxing. Come posso eseguirlo senza sandboxing? Supponiamo di non poter semplicemente ricompilare l'app con il sandboxing.
Soluzione
Questo funziona:
$ ditto MySandboxedApp.app MySandboxedApp.backup.app
$ codesign -f -s- MySandboxedApp.app
Nota il più extra in "-s-".
Altri suggerimenti
Ci sono molti modi in cui tutti fanno concettualmente la stessa cosa: fare sandbox_init
una no-op. Ad esempio puoi usare gdb
Per questo, imposta il punto di interruzione sandbox_init
e ritorna subito dalla funzione. Oppure potresti ricaricare una libreria contenente un vuoto sandbox_init
insieme a DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES=foo.dylib
dove foo.dylib
contiene solo int sandbox_init() { return 0; }
.
Nota che il sandboxing è volontario e se si esegue un'app fuori da un sandbox progettato, rendendo il tuo sistema più vulnerabile.