Comment puis-je exécuter une application OS X en bac à sable sans bac à sable?
-
28-10-2019 - |
Question
J'ai une application qui fonctionne avec le sandboxing.Comment puis-je l'exécuter sans sandbox?Supposons que je ne puisse pas simplement recompiler l'application en désactivant le bac à sable.
La solution
Cela fonctionne:
$ ditto MySandboxedApp.app MySandboxedApp.backup.app
$ codesign -f -s- MySandboxedApp.app
Notez le moins supplémentaire dans "-s-".
Autres conseils
Il y a plusieurs façons dont toutes font conceptuellement la même chose - faire de sandbox_init
un no-op.Par exemple, vous pouvez utiliser gdb
pour cela, définir le point d'arrêt sur sandbox_init
et revenir immédiatement de la fonction.Ou vous pouvez précharger une bibliothèque contenant un sandbox_init
vide avec DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES=foo.dylib
où foo.dylib
contient juste int sandbox_init() { return 0; }
.
Notez que le sandboxing est volontaire et si vous exécutez une application en dehors d'un sandbox comme prévu, vous rendez votre système plus vulnérable.