2012-02-05 48 views
5

क्या पाइथन (आदर्श) या बैश में शुरू होने वाले नाम 'एक्स' के साथ एक नई प्रक्रिया देखने का कोई तरीका है? मुझे पता है कि मैं चल रही प्रक्रियाओं को देख सकता हूं, लेकिन यह मेरी आवश्यकताओं के लिए पर्याप्त तेज़ नहीं है। केवल एक ही विचार है कि मैं सोच सकता हूं कि नई प्रक्रिया में कैसे हुकिंग है, और इसे पंजीकृत कर रहा है, लेकिन कैसे?पाइथन प्रक्रिया शुरू करने के लिए देख रहे हैं?

अधिक पृष्ठभूमि: मैं एक सीसीडीसी टीम (http://www.nationalccdc.org/) का हिस्सा हूं और नीली टीम पर हूं। प्रतिस्पर्धा का आधार छात्रों को अगली पीढ़ी के सुरक्षा विशेषज्ञों की बेहतर मदद करने के लिए पेशेवर कलम परीक्षकों के खिलाफ बचाव के लिए नेटवर्क देना है। मैं जो करना चाहता हूं वह लिनक्स बॉक्स पर इस पायथन लिपि को लोड करना है और कुछ कमांडों के लिए देखना है, जो संभवतः लाल टीम द्वारा उपयोग किए जाएंगे, उदाहरण के लिए 'chattr' कमांड। आदर्श रूप में मैं स्क्रिप्ट को देखने के लिए प्रक्रियाओं की एक सूची प्रदान करने में सक्षम होना चाहता हूं। मैं उस हिस्से को समझ सकता हूं लेकिन यह नहीं जानता कि प्रक्रिया के लिए कैसे देखना है।

किसी भी दिशा की सराहना की जाती है। धन्यवाद।

उत्तर

4

मुझे ऐसी प्रक्रिया के लिए कोई रास्ता नहीं पता है, जिसमें पूरी तरह से चल रहे लिनक्स सिस्टम पर किसी भी माध्यम से प्रक्रिया शुरू होने पर रूट विशेषाधिकारों को अधिसूचित नहीं किया जा सकता है। यदि मतदान पर्याप्त तेज़ नहीं है, तो आपको कुछ गंभीर हैकर करना होगा।

यदि आपके पास रूट है, तो यह संभव है। यदि नहीं, तो मैं इसे नहीं देख सकता।

रूट के साथ, आप fork और exec सिस्टम कॉल का सिस्टम-व्यापी प्रतिस्थापन सेट कर सकते हैं जो आपको अपनी वांछित सूचना प्रदान करता है। यह कर्नेल में हो सकता है, या यह LD_PRELOAD हैक हो सकता है।

यह केवल पायथन पर लागू नहीं होता है; सी प्रोग्राम के साथ भी, मुझे प्रक्रिया निर्माण के लिए "inotify" के बारे में पता नहीं है।

+0

दिशा के लिए धन्यवाद! ऐसा लगता है कि मैं क्या करना चाहता हूं। हमारे पास बक्से तक रूट पहुंच है। पूरी प्रतियोगिता वीएम के माध्यम से चलाया जाता है। – Trcx

+0

@Trcx ओह, यदि आपके पास रूट है तो आप SELinux जैसे मैक सिस्टम को कार्यान्वित कर सकते हैं और उन्हें पूरी तरह से बाहर रख सकते हैं। – Borealid

+0

समस्या यह है कि मेरे पास प्रोग्रामिंग ज्ञान नहीं है कि यह कैसे करें, लेकिन यही वह है जो Google के लिए है। > _> धन्यवाद। – Trcx

1

मैं इस विचार का परीक्षण नहीं किया है, लेकिन लिनक्स पर प्रत्येक प्रक्रिया आप /proc में निर्देशिका निर्माण पर एक inotify खोला आप अगर /proc/<dir>/cmdline प्रक्रिया से मेल खाता प्रक्रिया निर्देशिका के निर्माण पर नज़र रखने के लिए और फिर देखने के लिए सक्षम हो सकता है, तो /proc/<it's process id>/ के तहत एक निर्देशिका दिया जाता है तुम्हारी तलाश यह सिर्फ एक विचार है, उम्मीद है कि यह मदद करता है!

+2

यह मेरी सोच भी थी। दुर्भाग्यवश, ऐसा प्रतीत होता है कि चूंकि procfs वास्तविक fs नहीं है, यह नई निर्देशिकाओं को सूचित नहीं करता है :( – nfirvine