2009-12-31 15 views
10

क्या मेरे डेल्फी एप्लिकेशन को विंडोज़ टास्क मैनेजर (या प्रोसेस एक्सप्लोरर जैसे अन्य) द्वारा मारने से बचाने का कोई तरीका है?मैं अपने प्रबंधक को मारने से टास्क मैनेजर को कैसे रख सकता हूं?

मुझे लगता है कि विंडोज संदेश ऐसा कर सकते हैं (एक हुक करके और TerminateProcess संदेश को रोककर)।

मुझे इस सुरक्षा का एक उदाहरण चाहिए। कास्पर्स्की एंटी-वायरस सूट इस तरह हैं; हम कार्य प्रबंधक में अपनी प्रक्रिया समाप्त नहीं कर सकते हैं।

+14

ऐसा करने के लिए आपके पास क्या वैध कारण है? –

+1

मैं एक विकल्प सुझाता हूं: एक स्टेटस फ्लैग रखें जो उचित शटडाउन दिखाता है, और यदि आप उस शटडाउन ध्वज के सेट के बिना शुरू कर दिए हैं, तो इसका लॉग (या बड़ा) बनाएं। और उसके बाद एक ऐसी सेवा है जो आपकी प्रक्रिया पर नज़र रखता है और यह सुनिश्चित करता है कि यह चल रहा है। यदि उपयोगकर्ता इसे मारता है, तो बस इसे फिर से शुरू करें। यह वही है जो हम "चलाना चाहिए" प्रक्रिया के साथ करते हैं जिसे उपयोगकर्ता गड़बड़ कर सकता है। – mj2008

+7

मेरे पास एक सुझाव है: कृपया ऐसा न करें। –

उत्तर

11

एस्प प्रोग्राम जैसे कैस्पर्सकी शायद ड्राइवर का उपयोग करें और समाप्ति को रोकने के लिए हुक का उपयोग करें। आपकी स्थिति में मैं प्रक्रिया पर एक एसीएल सेट करने की सलाह दूंगा, इससे कार्य प्रबंधक या cmdline टूल (यदि उपयोगकर्ता के पास डीबग विशेषाधिकार नहीं है) के साथ समाप्ति को रोकता है। निस्संदेह उपयोगकर्ता हमेशा प्रोसेस एक्सप्लोरर जैसे टूल का उपयोग कर सकते हैं, प्रक्रिया का स्वामित्व ले सकते हैं, नया एसीएल सेट कर सकते हैं और टर्मिनेट कर सकते हैं।

यदि उपयोगकर्ता प्रशासक नहीं है तो यह प्रक्रिया को किसी भिन्न उपयोगकर्ता संदर्भ में चलाने के लिए पर्याप्त होगा (उदाहरण के लिए इसे किसी सेवा से लॉन्च करें)।

एक प्रक्रिया सेट करना Jedi Windows Security Library के साथ sample शो के साथ बहुत आसान है।

+1

ओकी रेमको, यह लाइब्रेरी मुझे संतुष्ट कर रही है, जो कि उदाहरण में दिखाया गया है, मेरी ज़रूरतों का जवाब दे सकता है, क्योंकि मुझे सिर्फ कुछ "अन" - नए शौक (उपयोग और कार्यकर्ता !!) – djiga4me

+1

द्वारा प्रदान किया जा सकता है यदि रेको का जवाब आपको पसंद है , आपको इसे स्वीकृत उत्तर के रूप में चिह्नित करना चाहिए। – Josh

+0

@ जोशइंस्टीन अब *** *** सभ्य है। टिप्पणी * और * आपके उत्तर के लिए +1। –

14

जैसा कि कॉर्नेल कहते हैं, उपयोगकर्ताओं द्वारा अलग प्रक्रियाओं की ओएस-स्तरीय सुरक्षा है। लेकिन आम तौर पर बोलते हुए, उपयोगकर्ता को ऐसा करने की अनुमति के साथ आपकी प्रक्रिया को समाप्त करने से रोकने का कोई तरीका नहीं है। और उपयोगकर्ता को उस उपयोगकर्ता के रूप में चल रही प्रक्रियाओं को समाप्त करने की अनुमति है।

भले ही आप इसे सिस्टम के रूप में चलाने के लिए चाहते हैं, आप लॉग ऑन उपयोगकर्ता के साथ बातचीत करने के लिए इस प्रक्रिया का उपयोग नहीं कर सके। आपको इसे एक सेवा के रूप में चलाने की आवश्यकता होगी और इसमें कोई जीयूआई नहीं होगा। आप एक्सप्लोरर.एक्सई जैसी प्रक्रिया में लोड किए गए डीएलएल को प्राप्त करने जैसे अन्य दृष्टिकोणों को आजमा सकते हैं, जो उपयोगकर्ता समाप्त नहीं करेंगे क्योंकि वे नहीं चाहते हैं, लेकिन यह सिर्फ अपमानजनक है।

डेवलपर्स अंतिम उपयोगकर्ताओं के लिए एक बहुत ही खराब स्थिति होगी यदि डेवलपर केवल उन अनुप्रयोगों को लिख सकें जिन्हें समाप्त नहीं किया जा सका। यदि यह एक आंतरिक अनुप्रयोग है तो आप समूह नीति के साथ इसे प्राप्त करने का कोई तरीका देखने के लिए सर्वर फॉल्ट जांच सकते हैं।

-1

एनटी-सेवा प्रोजेक्ट बनाएं, प्रक्रिया प्रबंधक के साथ सेवा प्रक्रियाओं को नहीं मारा जा सकता है, लेकिन आंतरिक सेवा प्रबंधक द्वारा नियंत्रित किया जाता है।

5

यह एक बहुत बुरा विचार है। यदि आपका प्रोग्राम किसी और के कंप्यूटर पर चल रहा है, तो यह उनकी संपत्ति पर है, न कि आपके, और अपने घर में अतिथि के रूप में व्यवहार करने की जरूरत है। इसका मतलब है कि आप इस तरह कार्य नहीं करते हैं कि आप इस जगह के मालिक हैं, और आप निश्चित रूप से कंप्यूटर के मालिक को नहीं बताते कि वह अपनी संपत्ति के साथ क्या नहीं कर सकता है, जैसे कि वह कार्य जिसे वह नहीं चलाना चाहता है। यदि आप ऐसा करते हैं, तो आपका प्रोग्राम मैलवेयर से बेहतर नहीं है, और मैलवेयर की तरह व्यवहार किया जा सकता है।

+3

-1: कंप्यूटर उनकी संपत्ति नहीं हो सकता है। जैसे सहायता डेस्क जहां प्रबंधकों को ऑपरेटरों की निगरानी करना पड़ता है, खासकर जब उनके पास संवेदनशील डेटा तक पहुंच होती है। ओएस नैतिकता के बारे में नहीं है, यह प्रोग्रामिंग प्रश्नों के बारे में है –

+1

@ एंडी: ऐसी स्थिति में, उन परिस्थितियों को संभालने के लिए प्रबंधन के लिए उचित नीति-संपादन उपकरण उपलब्ध हैं। और यदि आपको लगता है कि नैतिकता को प्रोग्रामिंग से अलग किया जा सकता है, तो कृपया कभी भी एक कंपाइलर को स्पर्श न करें। मैं जोखिम को नहीं चलाना चाहता हूं कि आपने जो कुछ लिखा है वह मेरी मशीन पर समाप्त होता है। –

+0

विस्तार से इसका वर्णन क्यों न करें? ओपी ने पहले ही अपना शब्द दिया है कि यह मैलवेयर (टिप्पणियों में) के बारे में नहीं है –

3

मुझे लगता है कि आप एक गलत सवाल पूछ रहे हैं।

आप "" को हल करने का प्रयास कर रहे हैं, यदि सर्वर "गलत तरीके से समस्या के साथ कनेक्शन के बीच में कनेक्शन समाप्त हो जाएगा। जवाब पर प्रक्रिया समाप्त करने से इनकार करते हैं ", लेकिन" कनेक्शन समस्याओं की पूर्ति और त्रुटि-फ़ॉलबैक कोड "लिखें!

क्यों? कारण, obviosly, कनेक्शन की समाप्ति नेटवर्क समस्याओं के कारण हो सकती है (आप अपने उपयोगकर्ताओं को नेटवर्क से मशीन अनप्लग करने से इनकार नहीं कर सकते हैं) और ग्राहक की समाप्ति नहीं!

Why can't you trap TerminateProcess?

और अगर आप आवेदन बारे में चिंतित हैं दुर्घटनाग्रस्त हो गया - बस Application Restart & Recovery API का उपयोग करें।

0

सबसे आसान तरीका: आप बस 2 प्रक्रिया शुरू कर सकते हैं और उन्हें एक दूसरे पर "देखने" दे सकते हैं।
यदि उनमें से एक बंद कर दिया गया था, तो दूसरी आय इसे पुनरारंभ करें। यह उस प्रक्रिया को मारने से नए शौक (जैसा कि आपने कहा था) को रोक देगा।

क्षमा करें, लेकिन मुझे लगता है कि आपके "सर्वर/क्लाइंट एप्लिकेशन" में ट्रोजन/बैकडोर क्षमताएं हैं। "क्लाइंट ऐप कुछ उपयोगी डेटा", "अकुशल प्रक्रिया" (आपकी टिप्पणियों में) मेरे लिए बहुत ही संदिग्ध प्रतीत होता है।

संबंधित मुद्दे

 संबंधित मुद्दे