رصد نشاط نظام الملفات لعملية الطفل على نظام التشغيل X مع امتيازات المستخدم العادية

StackOverflow https://stackoverflow.com/questions/1693455

  •  18-09-2019
  •  | 
  •  

سؤال

تفرخ عملية طبية وتحتاج إلى معرفة الملفات التي تعدلها أو تخلقها أو حذفها.

لا أستطيع استخدام DTRACE لأنني لا أستطيع سودو.

لا يمكنني استخدام FSEvents لأنها تقارير التعديلات التي تحدث لجميع العمليات على النظام وأنا مهتم فقط بعملية طفلي.

هل كانت مفيدة؟

المحلول

أود استكشاف باستخدام DYLD_INSERT_LIBRARIES (ما يعادل نظام التشغيل Mac LD_PRELOAD) التخلي عن روتين المراقبة الخاصة بك لإجراءات الروتينيات LIBC أو يدعو النظام الذي تهتم به. على سبيل المثال، يمكنك كتابة my_open() الروتين الذي يفعل مهما كان التتبع الذي تهتم به، ثم يستدعي LIBC الحقيقي open() للقيام بقية العمل. ستحتاج إلى القيام بذلك لجميع المكالمات المتعلقة بنظام الملفات التي تريد فخها (فتح، إغلاق، وقراءة، وكتابة، وإعادة تسمية، وما إلى ذلك) يجب أن تكون قادرا على إعداد DYLD_INSERT_LIBRARIES متغير البيئة قبل أن تفرخ عملية طفلك، دون الحاجة إلى أن تكون الجذر.

هناك مزيد من المعلومات حول هذا الموضوع، ومثال، في الفصل 2 من "Mac OS X Internals: نهج الأنظمة" من قبل Amit Singh. إذا لم يكن لديك نسخة، يمكنك قراءة القسم ذي الصلة كتب جوجل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top