যদিও আপনার উত্তরটি সঠিক, আমি কেবলমাত্র এটি সম্পর্কে আরও নির্দিষ্ট হতে চাই যাতে লোকেরা যা জানতে চায় তার সঠিক get_task_allow
অর্থ কী, পারে।
get_task_allow
এমন একটি এনটাইটেলমেন্ট যা অন্যান্য অ্যাপ্লিকেশনগুলিকে আপনার অ্যাপ্লিকেশনটির টাস্ক পোর্ট পেতে দেয়। এর অর্থ হ'ল যদি অন্য কোনও অ্যাপ্লিকেশন task_for_pid()
আপনার অ্যাপ্লিকেশন প্রসেস আইডি দিয়ে চালায় তবে তারা আপনার অ্যাপ্লিকেশনটির টাস্ক পোর্ট পাবেন যাতে তারা মেমোরিতে জিনিস লেখার এবং পড়ার মতো কাজগুলি করতে পারে, তাই জিনিসগুলিকে প্যাচ করতে সক্ষম হয় এবং এর আচরণ পরিবর্তন করতে পারে আপনার অ্যাপ্লিকেশন
যদি আপনি একটি জেলব্রেক কীভাবে কাজ করে তা একবার পর্যালোচনা করে দেখেন যে তারা তাদের প্রথম কাজগুলির একটি task_for_pid(mach_task_self(),0,&kernel_task);
হ'ল এটি kernel_task
হ'ল একটি mach_port_t
মূল্যযুক্ত 0
, যাতে তারা কার্নেলের স্মৃতি স্পর্শ করতে সক্ষম হয়।
কার্নেল এনটাইটেলমেন্টগুলিতে এনটাইটেলমেন্ট না get_task_allow
থাকায় এবং অ্যাপল এমনকি tfp0
( task_for_pid 0
) করার সম্ভাবনা সরিয়ে ফেলেছে , তাদের একটি প্যাচ প্রয়োজন।
সুতরাং মূলত এক্সকোডকে আপনার অ্যাপ্লিকেশনটির স্মৃতি স্পর্শ করা এবং এটি ডিবাগ করার জন্য এটির সাথে কাজ করা দরকার, আপনাকে এটি ডিবাগিংয়ের জন্য সক্ষম করতে হবে তবে আপনার অ্যাপ্লিকেশন বিতরণ করতে আপনাকে এটি অক্ষম করতে হবে অন্যথায় কোনও অ্যাপ্লিকেশন আপনার পেতে সক্ষম হবে টাস্ক পোর্ট