जादू संख्या: गुप्त कोड जो प्रोग्रामर आपके पीसी में छिपाते हैं

विषयसूची:

जादू संख्या: गुप्त कोड जो प्रोग्रामर आपके पीसी में छिपाते हैं
जादू संख्या: गुप्त कोड जो प्रोग्रामर आपके पीसी में छिपाते हैं

वीडियो: जादू संख्या: गुप्त कोड जो प्रोग्रामर आपके पीसी में छिपाते हैं

वीडियो: जादू संख्या: गुप्त कोड जो प्रोग्रामर आपके पीसी में छिपाते हैं
वीडियो: Week 6 All Qwiklabs Solved | Operating Systems and You: Becoming a Power User | Google IT 100% Marks - YouTube 2024, मई
Anonim
जब से पहले व्यक्ति ने कैलकुलेटर पर 5318008 लिखा था, तब से नरक आपके पीसी के अंदर गुप्त संख्या छुपा रहे हैं, और एप्लिकेशन और फ़ाइलों के बीच गुप्त हैंडशेक पर बातचीत करने के लिए उनका उपयोग कर रहे हैं। आज हम कुछ और मनोरंजक उदाहरणों पर एक त्वरित नज़र डालें।
जब से पहले व्यक्ति ने कैलकुलेटर पर 5318008 लिखा था, तब से नरक आपके पीसी के अंदर गुप्त संख्या छुपा रहे हैं, और एप्लिकेशन और फ़ाइलों के बीच गुप्त हैंडशेक पर बातचीत करने के लिए उनका उपयोग कर रहे हैं। आज हम कुछ और मनोरंजक उदाहरणों पर एक त्वरित नज़र डालें।

जादू संख्या क्या हैं?

अधिकांश प्रोग्रामिंग भाषा दृश्यों के पीछे कुछ प्रकार के डेटा का प्रतिनिधित्व करने के लिए 32-बिट पूर्णांक प्रकार का उपयोग करती हैं - आंतरिक रूप से संख्या रैम में संग्रहीत होती है या सीपीयू द्वारा 32 लोगों और शून्य के रूप में उपयोग की जाती है, लेकिन स्रोत कोड में इसे या तो लिखा जाएगा नियमित दशमलव प्रारूप, या हेक्साडेसिमल प्रारूप के रूप में, जो संख्या 0 से 9 का उपयोग करता है और अक्षर ए के माध्यम से एफ।

जब ऑपरेटिंग सिस्टम या कोई एप्लिकेशन किसी फ़ाइल के प्रकार को निर्धारित करना चाहता है, तो यह फ़ाइल के प्रकार को इंगित करने वाले विशेष मार्कर के लिए फ़ाइल की शुरुआत को देख सकता है। उदाहरण के लिए, एक पीडीएफ फ़ाइल हेक्स वैल्यू 0x255044462D312E33 से शुरू हो सकती है, जो ASCII प्रारूप में "% पीडीएफ-1.3" के बराबर होती है, या ज़िप फ़ाइल 0x504B से शुरू होती है, जो "पीके" के बराबर होती है, जो मूल PKZip उपयोगिता से निकलती है। इस "हस्ताक्षर" को देखकर, फ़ाइल प्रकार को किसी भी अन्य मेटाडेटा के बिना भी आसानी से पहचाना जा सकता है।

फ़ाइल के प्रकार को निर्धारित करने के लिए लिनक्स उपयोगिता "फ़ाइल" टर्मिनल से उपयोग की जा सकती है - असल में, यह "जादू" नामक फ़ाइल से जादू संख्याओं को पढ़ती है।
फ़ाइल के प्रकार को निर्धारित करने के लिए लिनक्स उपयोगिता "फ़ाइल" टर्मिनल से उपयोग की जा सकती है - असल में, यह "जादू" नामक फ़ाइल से जादू संख्याओं को पढ़ती है।

जब कोई एप्लिकेशन किसी फ़ंक्शन को कॉल करना चाहता है, तो वह मानक प्रकारों जैसे पूर्णांक का उपयोग करके उस फ़ंक्शन को मान पास कर सकता है, जिसे हेक्साडेसिमल प्रारूप में स्रोत कोड में व्यक्त किया जा सकता है। यह विशेष रूप से स्थिरांक के लिए सच है, जो पहचानने वाले हैं जिन्हें मानव-पठनीय नामों जैसे AUTOSAVE_INTERVAL के साथ परिभाषित किया गया है, लेकिन वे वास्तविक पूर्णांक (या अन्य प्रकार) मानों को मानचित्रित करते हैं। तो प्रोग्रामर की बजाय प्रत्येक बार जब वे स्रोत कोड में फ़ंक्शन को कॉल करते हैं तो 60 की तरह मान टाइप करते हैं, तो वे बेहतर पठनीयता के लिए AUTOSAVE_INTERVAL स्थिरता का उपयोग कर सकते हैं। (कॉन्स्टेंट आमतौर पर आसानी से पहचाने जाते हैं क्योंकि वे सभी पूंजी अक्षरों में लिखे जाते हैं)।

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

जादू संख्या के साथ मज़ा: कुछ उल्लेखनीय उदाहरण

यदि आप लिनक्स स्रोत कोड में त्वरित रूप से देखते हैं, तो आप देखेंगे कि लिनक्स पर reboot () सिस्टम कॉल के लिए एक "जादू" चर होना आवश्यक है जो हेक्साडेसिमल संख्या 0xfee1dead के बराबर है। अगर कुछ उस जादू को पहले उस जादू मूल्य में गुजरने के बिना कॉल करने का प्रयास करता है, तो यह सिर्फ एक त्रुटि लौटाएगा।
यदि आप लिनक्स स्रोत कोड में त्वरित रूप से देखते हैं, तो आप देखेंगे कि लिनक्स पर reboot () सिस्टम कॉल के लिए एक "जादू" चर होना आवश्यक है जो हेक्साडेसिमल संख्या 0xfee1dead के बराबर है। अगर कुछ उस जादू को पहले उस जादू मूल्य में गुजरने के बिना कॉल करने का प्रयास करता है, तो यह सिर्फ एक त्रुटि लौटाएगा।

जीपीटी विभाजन योजना में एक BIOS बूट विभाजन के लिए GUID (वैश्विक रूप से अद्वितीय पहचानकर्ता) 21686148-6449-6E6F-744E-656564454649 है, जो ASCII स्ट्रिंग "है! इडोंटनिडईएफआई" बनाता है, इस तथ्य के लिए एक संकेत है कि जीपीटी का सामान्य रूप से उपयोग किया जाएगा उन कंप्यूटरों में जिन्होंने यूईएफआई के साथ BIOS को प्रतिस्थापित किया, लेकिन यह आवश्यक नहीं है।

माइक्रोसॉफ्ट ने लिनक्स को सबमिट किए गए उनके हाइपर-वी वर्चुअल-मशीन सहायक स्रोत कोड में 0x0B00B135 को मशहूर रूप से छुपाया, फिर उन्होंने मान को 0xB16B00B5 में बदल दिया, और आखिरकार उन्होंने स्रोत कोड से हटा दिए जाने से पहले इसे दशमलव पर स्विच कर दिया।

अधिक मजेदार उदाहरणों में शामिल हैं:

  • 0xbaaaaad - आईओएस क्रैश लॉगिंग द्वारा उपयोग किया जाता है यह इंगित करने के लिए कि एक लॉग पूरे सिस्टम का एक स्टैकशॉट है।
  • 0xbad22222 - आईओएस क्रैश लॉगिंग द्वारा उपयोग किया जाता है यह इंगित करने के लिए कि आईओएस द्वारा एक वीओआईपी ऐप मारा गया है क्योंकि यह गलत व्यवहार करता है।
  • 0x8badf00d - (एटी बैड फूड) आईओएस क्रैश लॉग द्वारा उपयोग किया जाता है यह इंगित करने के लिए कि एक एप्लिकेशन को कुछ करने में बहुत लंबा लगा और वॉचडॉग टाइमआउट द्वारा मारा गया था।
  • 0xdeadfa11 - (डेड पतन) आईओएस क्रैश लॉगिंग द्वारा उपयोग किया जाता है जब किसी ऐप को उपयोगकर्ता द्वारा मजबूर किया जाता है।
  • 0xDEADD00D - एक वीएम निरस्त करने के लिए एंड्रॉइड द्वारा उपयोग किया जाता है।
  • जब कोई एप्लिकेशन पृष्ठभूमि में संसाधन लॉक करता है तो आईओएस क्रैश लॉगिंग द्वारा उपयोग किया गया 0xDEAD10CC (डेड लॉक)।
  • 0xBAADF00D (खराब भोजन) विंडोज़ में लोकलअलोक फ़ंक्शन द्वारा डिबगिंग के लिए उपयोग किया जाता है।
  • 0xCAFED00D (कैफे दोस्त) जावा के पैक 200 संपीड़न द्वारा उपयोग किया जाता है।
  • 0xCAFEBABE (कैफे बेब) जावा द्वारा संकलित क्लास फाइलों के पहचानकर्ता के रूप में उपयोग किया जाता है
  • 0x0D15EA5E (रोग) गेमक्यूब पर निंटेंडो द्वारा उपयोग किया जाता है और सामान्य बूट इंगित करने के लिए Wii होता है।
  • 0x1BADB002 (1 खराब बूट) मल्टीबूट विनिर्देश द्वारा एक जादू संख्या के रूप में उपयोग किया जाता है
  • 0xDEADDEAD - मैन्युअल रूप से आरंभ किए गए डीबग क्रैश को इंगित करने के लिए विंडोज द्वारा उपयोग किया जाता है, अन्यथा ब्लू स्क्रीन ऑफ डेथ के रूप में जाना जाता है।

ये बिल्कुल बाहर नहीं हैं, बेशक, लेकिन उदाहरणों की एक छोटी सूची जो मजेदार लगती है। अब और जानें? हमें टिप्पणियों में बताएं।

खुद के लिए उदाहरण देख रहे हैं

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

एक अतिरिक्त उदाहरण के रूप में, एएससीआईआई प्रारूप में पढ़े जाने पर एंड्रॉइड फोन जैसे क्लॉकवर्कमोड के लिए पुनर्प्राप्ति छवियां "एंड्रॉइड!" से शुरू होती हैं।

Image
Image

ध्यान दें: जब आप चारों ओर देख रहे हों तो कुछ भी न बदलें। हेक्स संपादक चीजें तोड़ सकते हैं!

सिफारिश की: