Alors que votre répondre est correcte, je veux juste être plus précis sur ce point pour que les gens qui veulent savoir ce que fait exactement le get_task_allow
signifie, peut.
get_task_allow
est un droit qui permet à d'autres applications d'obtenir le portage de tâches de votre application. Cela signifie que si une autre application exécute task_for_pid()
avec l'ID du processus de votre application, ils obtiendront le port de tâche de votre application afin qu'ils puissent faire des choses comme, par exemple, écrire et lire des choses sur la mémoire, et donc être en mesure de patcher des choses et de modifier le comportement de votre application.
Si vous regardez comment fonctionne un jailbreak, vous remarquerez que l'une des premières choses qu'il fait est d'obtenir des informations sur le fonctionnement de l'ordinateur. task_for_pid(mach_task_self(),0,&kernel_task);
étant donné que kernel_task
est un mach_port_t
avec valeur 0
Ils sont donc en mesure de toucher la mémoire du noyau.
Comme les droits au noyau n'ont pas get_task_allow
et Apple a même supprimé la possibilité de le faire. tfp0
( task_for_pid 0
), ils ont besoin d'un correctif.
Ainsi, comme Xcode a besoin de toucher la mémoire de votre application et de travailler avec elle pour la déboguer, vous devrez activer cette fonction pour le débogage, mais vous devrez la désactiver pour distribuer votre application, sinon n'importe quelle application sera capable d'obtenir votre port de tâche.