यदि आप %0|%0
के साथ .bat या .cmd फ़ाइल चलाते हैं, तो आपका कंप्यूटर बहुत मेमोरी का उपयोग करना शुरू कर देता है और कई मिनट बाद पुनरारंभ होता है। यह कोड आपके विंडोज़ को क्यों अवरुद्ध करता है? और यह कोड प्रोग्रामेटिक रूप से क्या करता है? इसे "बग" माना जा सकता है?% 0 |% 0 क्या है और यह कैसे काम करता है?
उत्तर
यह fork bomb का विंडोज संस्करण है।
%0
वर्तमान में निष्पादित बैच फ़ाइल का नाम है। एक बैच फ़ाइल है कि सिर्फ इस लाइन में शामिल हैं:
%0|%0
रिकर्सिवली ही हमेशा के लिए निष्पादित करने के लिए जा रहा है, जल्दी से कई प्रक्रियाओं बनाने और सिस्टम धीमा।
यह विंडोज़ में एक बग नहीं है, यह बैच फ़ाइल में बस एक बहुत ही बेवकूफ चीज है।
% 0 |% 0 ब्रेक विंडोज क्यों करता है, लेकिन% 0 नहीं करता है? – Pavel
@ पावेल: क्या '.bat' फ़ाइल है: फ़ाइल समाप्त होने के अंत में निर्देश पढ़ें। यदि आप% 0: चलाते हैं प्रक्रिया 1: प्रारंभ होता है,% 0 चलाएं (इस प्रकार प्रक्रिया 2 बनाएं); फिर मरें प्रक्रिया 2: शुरू होता है,% 0 चलाएं (इस प्रकार प्रक्रिया 3 बनाएं); तो मरें [...] आप हमेशा 2 प्रक्रिया चल रहे हैं क्योंकि निर्माता मर जाएगा। फोर्क बम का बिंदु 2 संस्करण बनाना है। इस प्रकार पी 1 2 प्रक्रिया (1 'और 1 ") बनाते हैं, वे दो प्रक्रियाएं, प्रत्येक, 2 (इस प्रकार 4), घातीय जा रही हैं। – pltrdy
इसे एक कांटा बम के रूप में जाना जाता है। यह तब तक विभाजित रहता है जब तक कि सिस्टम को पुनरारंभ करने के अलावा कोई विकल्प न हो। http://en.wikipedia.org/wiki/Fork_bomb
यह एक तर्कसंगत बम है, यह खुद को पुनर्निर्माण करता है और आपके सभी CPU संसाधनों को लेता है। यह आपके कंप्यूटर को बहुत अधिक प्रक्रियाओं के साथ अधिभारित करता है और यह इसे बंद करने के लिए मजबूर करता है। यदि आप इसमें बैच फ़ाइल बनाते हैं और इसे शुरू करते हैं तो आप taskmgr का उपयोग करके इसे समाप्त कर सकते हैं। आपको इसे बहुत तेज़ी से करना है या आपका कंप्यूटर कुछ भी करने में बहुत धीमा होगा।
यह क्या है:
%0|%0
एक fork bomb है। यह एक पाइप |
का उपयोग करके एक और प्रक्रिया उत्पन्न करेगा जो एक ही प्रोग्राम की प्रतिलिपि असीमित रूप से चलाता है। यह सीपीयू और मेमोरी को हॉग करता है, जिससे सिस्टम को निकट-रोक में धीमा कर दिया जाता है (या सिस्टम को भी क्रैश करता है)।
यह कैसे काम करता है:
%0
वर्तमान कार्यक्रम चलाने के लिए इस्तेमाल किया आदेश को दर्शाता है। उदाहरण के लिए, script.bat
एक पाइप |
प्रतीक दूसरे कमांड अनुक्रम के इनपुट के रूप में पहले कमांड अनुक्रम का आउटपुट या परिणाम देगा। एक कांटा बम के मामले में, कोई आउटपुट नहीं है, इसलिए यह बिना किसी इनपुट के दूसरे कमांड अनुक्रम को चलाएगा।
उदाहरण का विस्तार, %0|%0
का मतलब script.bat|script.bat
हो सकता है। यह फिर से चलाता है, लेकिन एक ही प्रोग्राम को फिर से चलाने के लिए एक और प्रक्रिया बना रहा है (बिना इनपुट के)।
- 1. क्यों 0 और 1 1 है जबकि 1 और 0 0 रूबी में 0 है?
- 2. क्या glUseProgram (0) क्या करता है?
- 3. 0 + 0 + 0 ... + 0! = 0
- 4. क्यों है (इन्फिनिटी | 0) === 0?
- 5. उप ईएक्स, 0 - क्या यह कुछ भी करता है?
- 6. {} जबकि (0) मैक्रो में कैसे काम करता है?
- 7. #if 0 ..... #endif ब्लॉक क्या करता है?
- 8. क्या पर्ल विशेष चर $ है - [0] और $ + [0]
- 9. (char) 0 और '\ 0' के बीच क्या अंतर है? सी
- 10. sys.exit (0) और os._exit बीच क्या अंतर है (0)
- 11. [0-9] + और [0-9] ++ के बीच क्या अंतर है?
- 12. -0 और 0 के बीच क्या अंतर है?
- 13. मार्जिन क्या करें: 5 पीएक्स 0; और मार्जिन: 5 पीएक्स 0 0; क्या मतलब है?
- 14. "#if Foo - 0 == 0" और "#if परिभाषित (Foo) और& Foo == 0" के बीच क्या अंतर है?
- 15. सी ++ में '\ 0' क्या है?
- 16. जावास्क्रिप्ट में "0 === -0" सच क्यों है?
- 17. यह स्ट्रिंग इको 0 क्यों करती है?
- 18. करता है (size_t) ((char *) 0) कभी 0 का मूल्यांकन नहीं करता है?
- 19. वर्टीपाक क्या है और यह कैसे काम करता है
- 20. रिकर्सन क्या है और यह कैसे काम करता है?
- 21. डीएलएल में क्या है और यह कैसे काम करता है?
- 22. नाम उलझन क्या है, और यह कैसे काम करता है?
- 23. सी में 0 क्या है?
- 24. '\ 0' का क्या अर्थ है?
- 25. "यह" कैस्केडिंग कैसे काम करता है?
- 26. एंड्रॉइड: ListView.getScrollY() - क्या यह काम करता है?
- 27. क्यों 2 + 1 और 0 परिणाम 0 है?
- 28. x >>> 0 क्या करता है?
- 29. (वस्तु) 0 == (वस्तु) 0
- 30. बिना 0 -0 ध्वज
[बैच कांटा बम?] (Http://stackoverflow.com/questions/8949103/batch-fork-bomb) का संभावित डुप्लिकेट – Cerbrus