এল ক্যাপ্টেন এখন "রুটহীন", dtrace কাজ করার কোন উপায় আছে?


21

আমি ডিট্রেসকে সব ধরণের সমস্যার ডিবাগিং এবং সমস্যা সমাধানের জন্য একটি অমূল্য সরঞ্জাম বলে খুঁজে পেয়েছি , এল ক্যাপিটেনের অংশ হিসাবে অ্যাপল কর্তৃক প্রেরিত দুটি ডজন ডিট্রেস টুলকিট স্ক্রিপ্টগুলির উল্লেখ না করে ।

যদিও এল ক্যাপে, ডিট্রেস চালানো সাধারণত ডিট্রেসকে অকার্যকর ব্যতীত ত্রুটিগুলির অবিরাম স্কোতে ফলাফল দেয়।

উত্তর:


18

10.11-এ সিস্টেম ইন্টিগ্রিটি সুরক্ষা অক্ষম করা যেতে পারে, যদিও এটি আপনার হালকাভাবে করা উচিত নয়।

আপনি নিম্নলিখিতটি করে পুরোপুরি এসআইপি অক্ষম করতে পারেন:

  1. আপনার ম্যাকটি পুনরায় বুট করুন
  2. রিবুটের সময় ⌘R ধরে রাখুন
  3. থেকে উপযোগিতা মেনু, চালানোর টার্মিনাল
  4. নিম্নলিখিত কমান্ড লিখুন
csrutil disable

বিকল্পভাবে আপনি এসআইপি পুনরায় সক্ষম করতে পারবেন যখন এখনও dtraceনিম্নলিখিত চালিয়ে কাজ করতে পারবেন :

csrutil enable --without dtrace

দ্রষ্টব্য, এটি করার সময় আপনি নিম্নলিখিত সতর্কতা পাবেন:

এটি একটি অসমর্থিত কনফিগারেশন, ভবিষ্যতে ভাঙ্গার সম্ভাবনা রয়েছে এবং আপনার যন্ত্রটিকে অজানা অবস্থায় রেখে যেতে পারে।

আপনি পুনরায় বুট করার পরে, dtraceইউসেমাইটে যেমন হয়েছিল তেমনই কাজ করবে।


ভাল হয়েছে - অন্য থ্রেডের জবাব দেওয়ার সময় আমি এই পোস্টটি মিস করেছি :-) আমি রিচের সেশন ভিডিও এবং ব্লগটি পুনরায় প্লাগ করতে যাচ্ছি : derflounder.wordpress.com/2015/10/01/…
বিমিক

2
এটি মোটেই সত্য নয়। সিট্রিলের সাহায্যে ডিট্রেস সক্ষম হয়ে আপনি কার্নেলের ডিট্রেস আহ্বান করতে পারেন - তবে কেবল বাইনারিগুলিতে যেখানে সীমাবদ্ধ এনটাইটেলমেন্ট পতাকা নেই। আপনি সমস্ত এসআইপি বন্ধ করে রুট হিসাবেও সীমাবদ্ধ এনটাইটেলমেন্ট ফ্ল্যাগ মুছতে পারবেন না। এর অর্থ হ'ল ডিট্রেস সক্ষম থাকলে আপনি কেবলমাত্র নন-সিস্টেম বাইনারিগুলিই ডিট্রেস করতে পারবেন। তবে, যদি কোনও নন-সিস্টেম বাইনারি সিস্টেম ফোল্ডারে ইনস্টল করা একটি শেয়ারড-lib ব্যবহার করে (যা প্রচুর প্রোগ্রাম করে) তবে আপনি এটি ডিগ্রাস করতে পারবেন না। সুতরাং 'ইয়োসেমাইটে যেমন হয়েছিল তেমনই' কাজ করার জন্য ড্রেট্রেস পাওয়ার একমাত্র উপায় হ'ল আপনার সমস্ত সিস্টেম ফোল্ডারের একটি অনুলিপি তৈরি করুন এবং এটি ক্রট করুন
জেজে

4

বাইনারি কোনও ডিরেক্টরিতে অনুলিপি করুন যা "সীমাবদ্ধ নয়" উদাহরণস্বরূপ, /tmp

csrutil disableকিছুটা ডিট্রাসের জন্য কাজ করে না। তবে @ জেজে যেমন chrootকাজ করেছেন বলে তা আমাকে অনুপ্রাণিত করেছিল।

এখনও আমি জানি না কেন এটি কাজ করে। আমার ধারণা, এটি "সুরক্ষিত ডিরেক্টরিগুলি" এর সাথে কিছু করতে পারে।

পরীক্ষাটি এখানে:

CC@~ $ csrutil status
System Integrity Protection status: disabled.
CC@~ $ sudo dtruss /bin/echo
dtrace: failed to execute /bin/echo: dtrace cannot control executables signed with restricted entitlements
CC@~ $ cp /bin/echo /tmp
CC@~ $ sudo dtruss /tmp/echo

SYSCALL(args)        = return
thread_selfid(0x0, 0x0, 0x0)         = 46811 0
csops(0x0, 0x0, 0x7FFF51B6CA20)      = 0 0
issetugid(0x0, 0x0, 0x7FFF51B6CA20)      = 0 0
shared_region_check_np(0x7FFF51B6A918, 0x0, 0x7FFF51B6CA20)      = 0 0
stat64("/usr/lib/dtrace/libdtrace_dyld.dylib\0", 0x7FFF51B6BEA8, 0x7FFF51B6CA20      = 0 0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.