Bien que votre réponse soit correcte, je veux juste être plus précis à ce sujet afin que les gens qui veulent savoir ce que cela get_task_allow
signifie exactement , le puissent.
get_task_allow
est un droit qui permet à d'autres applications d'obtenir le port de tâche de votre application. Cela signifie que si une autre application s'exécute task_for_pid()
avec l'ID de processus de votre application, elle obtiendra le port de tâche de votre application afin qu'elle puisse faire des choses comme par exemple écrire et lire des choses sur la mémoire, pouvant ainsi patcher des choses et modifier le comportement de votre appli.
Si vous regardez comment fonctionne un jailbreak, vous remarquerez que l'une des premières choses qu'ils font est d'obtenir un task_for_pid(mach_task_self(),0,&kernel_task);
être qui a kernel_task
une mach_port_t
valeur 0
, afin qu'ils puissent toucher la mémoire du noyau.
Comme les droits du noyau n'ont pas de get_task_allow
droits et qu'Apple a même supprimé la possibilité de faire tfp0
( task_for_pid 0
), ils ont besoin d'un correctif.
Donc, fondamentalement, comme Xcode doit toucher la mémoire de votre application et travailler avec elle pour la déboguer, vous devrez l'activer pour le débogage, mais vous devrez le désactiver pour distribuer votre application, sinon toute application pourrait obtenir votre port de tâche.