Mặc dù câu trả lời của bạn là đúng, tôi chỉ muốn nói rõ hơn về điều này để những người muốn biết chính xác get_task_allow
nghĩa là gì, có thể.
get_task_allow
là một quyền cho phép các ứng dụng khác có được cổng tác vụ của ứng dụng của bạn. Điều này có nghĩa là nếu bất kỳ ứng dụng nào khác chạy task_for_pid()
với ID quy trình ứng dụng của bạn, họ sẽ nhận được cổng tác vụ của ứng dụng của bạn để họ có thể làm những việc như viết và đọc mọi thứ trên bộ nhớ, do đó có thể vá mọi thứ và sửa đổi hành vi của ứng dụng của bạn.
Nếu bạn xem cách jailbreak hoạt động, bạn sẽ nhận thấy một trong những điều đầu tiên họ làm là nhận task_for_pid(mach_task_self(),0,&kernel_task);
được kernel_task
một mach_port_t
giá trị có giá trị 0
, để họ có thể chạm vào bộ nhớ của nhân.
Vì các quyền của kernel không có get_task_allow
quyền và Apple thậm chí đã loại bỏ khả năng thực hiện tfp0
( task_for_pid 0
), họ cần một bản vá.
Vì vậy, về cơ bản vì Xcode cần chạm vào bộ nhớ ứng dụng của bạn và làm việc với nó để gỡ lỗi, bạn sẽ cần bật tính năng này để gỡ lỗi, nhưng bạn sẽ cần phải tắt tính năng này để phân phối ứng dụng của mình hoặc bất kỳ ứng dụng nào có thể lấy được cổng tác vụ.