Cevabınız doğru olsa da , sadece tam olarak ne anlama get_task_allow
geldiğini bilmek isteyenlerin yapabilmesi için bu konuda daha spesifik olmak istiyorum .
get_task_allow
diğer uygulamaların uygulamanızın görev bağlantı noktasını almasına izin veren bir yetkidir. Bu task_for_pid()
, uygulama işlem kimliğinizle çalışan başka herhangi bir uygulamanın uygulamanızın görev bağlantı noktasını alacağı anlamına gelir; böylece, örneğin bellekte bir şeyler yazma ve okuma gibi şeyler yapabilirler, böylece bir şeyleri yamayabilir ve davranışını değiştirebilirler. uygulamanız.
Bir jailbreak'in nasıl çalıştığına bakarsanız, yaptıkları ilk şeylerden birinin değerli bir şey task_for_pid(mach_task_self(),0,&kernel_task);
olmak olduğunu fark edeceksiniz , böylece çekirdek belleğine dokunabilirler.kernel_task
mach_port_t
0
Çekirdek yetkilerinin yetkisi olmadığından get_task_allow
ve Apple tfp0
( task_for_pid 0
) yapma olasılığını bile ortadan kaldırdığından, bir yamaya ihtiyaçları vardır.
Yani temelde Xcode'un uygulamanızın belleğine dokunması ve hata ayıklamak için onunla çalışması gerektiğinden, hata ayıklama için bunu etkinleştirmeniz gerekir, ancak uygulamanızı dağıtmak için bunu devre dışı bırakmanız gerekir, aksi takdirde herhangi bir uygulama sizin görev bağlantı noktası.