Während Ihre Antwort richtig ist, möchte ich nur genauer darauf eingehen, damit Menschen, die wissen wollen, was genau get_task_allow
bedeutet, dies können.
get_task_allow
ist eine Berechtigung, mit der andere Apps den Task-Port Ihrer App abrufen können. Dies bedeutet, dass jede andere App, die task_for_pid()
mit Ihrer App-Prozess-ID ausgeführt wird, den Task-Port Ihrer App erhält, sodass sie beispielsweise Dinge in den Speicher schreiben und lesen können, um Dinge zu patchen und das Verhalten von zu ändern Ihre App.
Wenn Sie sich ansehen, wie ein Jailbreak funktioniert, werden Sie feststellen, dass eines der ersten Dinge, die sie tun task_for_pid(mach_task_self(),0,&kernel_task);
, kernel_task
ein mach_port_t
Wert ist 0
, damit sie den Speicher des Kernels berühren können.
Da Kernel-Berechtigungen keine get_task_allow
Berechtigung haben und Apple sogar die Möglichkeit dazu entfernt hat tfp0
(task_for_pid 0
) entfernt hat, benötigen sie einen Patch.
Da Xcode den Speicher Ihrer App berühren und damit arbeiten muss, um sie zu debuggen, müssen Sie dies für das Debuggen aktivieren. Sie müssen dies jedoch deaktivieren, um Ihre App zu verteilen. Andernfalls kann jede App Ihre App abrufen Task-Port.