अपराधी को खोजने में आपकी मदद करने के लिए एक उपकरण के रूप में, यहाँ एक dtrace ऑनलाइनर है जो किसी भी प्रक्रिया के नाम और नाम को प्रिंट करता है जो फ़ाइल नाम के साथ लिखने के लिए एक फाइल खोलता है:
dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }'
इसे रूट के रूप में चलाने की आवश्यकता है (जैसे, सुडो के साथ)। इसे grep hostsआउटपुट में डूबने से बचाने के लिए पाइप में रखें और जो आप देख रहे हैं वह गायब है:
sudo dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }' | grep hosts
उम्मीद है, यह आपको बताएगा कि किस प्रक्रिया में फ़ाइल ओवरराइटिंग है। बस इसे टर्मिनल विंडो में चलने दें जब तक यह ट्रिगर न हो जाए।
</speculation>