جب سے پہلے شخص نے کیلکولیٹر پر 5318008 لکھا ہے ، بیوکوف آپ کے کمپیوٹر کے اندر خفیہ نمبر چھپا رہے ہیں ، اور انھیں استعمال کرکے درخواستوں اور فائلوں کے مابین خفیہ مصافحہ کی بات چیت کر رہے ہیں۔ آج ہم کچھ مزید دل لگی مثالوں پر ایک نگاہ ڈالتے ہیں۔
جادو نمبر کیا ہیں؟
زیادہ تر پروگرامنگ زبانیں پردے کے پیچھے مخصوص قسم کے اعداد و شمار کی نمائندگی کرنے کیلئے 32 بٹ انٹیر ٹائپ استعمال کرتی ہیں۔ باقاعدگی سے اعشاریہ شکل ، یا بطور ہیکساڈسیمل فارمیٹ ، جو 0 سے 9 تک اور A کے ذریعے F کے ذریعے حرف استعمال کرتا ہے۔
جب آپریٹنگ سسٹم یا ایپلی کیشن کسی فائل کی قسم کا تعین کرنا چاہتا ہے تو ، یہ فائل کی شروعات کو ایک خاص مارکر کے ل look دیکھ سکتا ہے جو فائل کی قسم کو ظاہر کرتا ہے۔ مثال کے طور پر ، ایک پی ڈی ایف فائل ہیکس ویلیو 0x255044462D312E33 سے شروع ہوسکتی ہے ، جو ASCII فارمیٹ میں "٪ PDF-1.3" کے برابر ہے ، یا ایک زپ فائل 0x504B سے شروع ہوتی ہے ، جو "PK" کے برابر ہے ، جو اصل PKZip افادیت سے اترتی ہے۔ اس "دستخط" کو دیکھ کر ، کسی فائل کی قسم کی شناخت آسانی سے کسی دوسرے میٹا ڈیٹا کے بغیر بھی کی جاسکتی ہے۔
لینکس کی افادیت "فائل" کو ٹرمینل سے کسی فائل کی قسم کا تعین کرنے کے لئے استعمال کیا جاسکتا ہے - در حقیقت ، یہ فائل سے جادو نمبر پڑھتے ہیں "جادو" کہا جاتا ہے۔
جب کوئی ایپلی کیشن کسی فنکشن کو فون کرنا چاہتا ہے تو ، وہ معیاری اقسام کی طرح اعداد و شمار کا استعمال کرتے ہوئے اس فنکشن میں اقدار کو منتقل کرسکتا ہے ، جس کو ہیکساڈیسیمل فارمیٹ میں سورس کوڈ میں ظاہر کیا جاسکتا ہے۔ یہ خاص طور پر مستحقین کے لئے درست ہے ، جو AUTOSAVE_INTERVAL جیسے انسانی پڑھنے کے قابل ناموں سے متعین شناخت کار ہیں ، لیکن وہ اصل عددی (یا دوسری قسم) کی اقدار پر نقشہ لگاتے ہیں۔ لہذا ، پروگرامر کے بجائے 60 کی طرح کوئی ٹائپ کرتے وقت جب وہ فنکشن کو سورس کوڈ میں کہتے ہیں ، وہ بہتر پڑھنے کی اہلیت کے لئے AUTOSAVE_INTERVAL مستحکم استعمال کرسکتے ہیں۔ (مستقل طور پر آسانی سے پہچان جاتے ہیں کیونکہ وہ تمام بڑے حروف میں لکھے جاتے ہیں)۔
یہ تمام مثالیں اصطلاح کے تحت آسکتی ہیں جادو نمبر ، کیونکہ ان کو مناسب طریقے سے کام کرنے کے لئے کسی فنکشن یا فائل ٹائپ کے ل a ایک مخصوص ہیکساڈیسمل نمبر کی ضرورت ہوسکتی ہے… اگر قدر درست نہیں ہے تو یہ کام نہیں کرے گی۔ اور جب کوئی پروگرامر تھوڑا سا لطف اٹھانا چاہتا ہے تو ، وہ ان اقدار کو ہیکساڈیسیمل نمبروں کا استعمال کرکے بیان کرسکتا ہے جو انگریزی میں کچھ ہجے بناتے ہیں ، بصورت دیگر نام سے جانا جاتا ہے ہیکس اسپیک .
جادو نمبر کے ساتھ تفریح: کچھ قابل ذکر مثالوں
اگر آپ ایک سرسری نظر ڈالیں لینکس ماخذ کوڈ میں ، آپ دیکھیں گے کہ لینکس پر _ ریبٹ () سسٹم کال کے لئے "جادو" متغیر کی ضرورت ہوتی ہے جو ہیکساڈیسیمل نمبر 0xfi1dead کے برابر ہوتا ہے۔ اگر کسی جادوئی قدر میں پہلے گزرے بغیر کسی فنکشن کو فون کرنے کی کوشش کرتا ہے تو ، یہ صرف غلطی واپس کردے گی۔
GID (عالمی سطح پر انوکھا شناخت کار) BIOS بوٹ تقسیم میں جی پی ٹی تقسیم کرنے کی اسکیم 21686148-6449-6E6F-744E-656564454649 ہے ، جو ASCII سٹرنگ "ہاہ! IdontNeedEFI" تشکیل دیتا ہے ، اس حقیقت کا اشارہ ہے کہ GPT عام طور پر استعمال ہوتا ہے ایسے کمپیوٹر جنہوں نے BIOS کو UEFI سے تبدیل کردیا ، لیکن ایسا ہونا ضروری نہیں ہے۔
مائیکرو سافٹ مشہور ہے 0x0B00B135 کو چھپا دیا گیا اس کے بعد ، ان کے ہائپر- V ورچوئل مشین معاون ماخذ کوڈ کو لینکس کو پیش کیا گیا انہوں نے قدر کو 0xB16B00B5 کردیا ، اور آخر میں وہ اسے اعشاریہ میں بدل دیا اس سے پہلے کہ اسے سورس کوڈ سے مکمل طور پر ختم کردیا جائے۔
مزید تفریحی مثالوں میں شامل ہیں:
- 0xbaaaaaad - استعمال شدہ iOS کریش لاگنگ اس بات کی نشاندہی کرنے کے لئے کہ ایک لاگ پورے نظام کا اسٹاک شاٹ ہے۔
- 0xbad22222 - iOS کریش لاگنگ کے ذریعہ استعمال ہوتا ہے اس بات کی نشاندہی کرنے کے لئے کہ کسی VoIP ایپ کو آئی او ایس نے مارا ہے کیونکہ اس نے غلط سلوک کیا۔
- 0x8badf00d - (آئی ایس بیڈ فوڈ) iOS کریش لاگز کے ذریعہ استعمال ہوتا ہے اس بات کی نشاندہی کرنے کے لئے کہ کسی ایپلیکیشن کو کچھ کرنے میں بہت زیادہ وقت درکار ہے اور واچ ڈاگ ٹائم آؤٹ کے ذریعہ اسے ہلاک کردیا گیا تھا۔
- 0xdeadfa11 - جب کسی ایپ کو کسی صارف کے ذریعہ زبردستی چھوڑنے پر iOS کریش لاگنگ کے ذریعہ استعمال کیا جاتا ہے (ڈیڈ فال)۔
- 0xDEADD00D - Android کے ذریعہ VM اسقاط حمل کی نشاندہی کرنے کیلئے استعمال کیا جاتا ہے۔
- 0xDEAD10CC (ڈیڈ لاک) iOS کریش لاگنگ کے ذریعہ استعمال کیا جاتا ہے جب ایک اطلاق پس منظر میں کسی وسائل کو لاک کرتا ہے۔
- 0xBAADF00D (خراب خوراک) کا استعمال لوکللوک ٹھیک کرنا ونڈوز میں تقریب.
- 0xCAFED00D (کیفے کا دوست) جاوا کے پیک 200 کمپریشن کے ذریعہ استعمال ہوتا ہے۔
- 0xCafEBABE (کیفے بیب) جاوا کے ذریعہ مرتب شدہ کلاس فائلوں کے شناخت کار کے طور پر استعمال ہوتا ہے
- 0x0D15EA5E (بیماری) پر نائنٹینڈو کے ذریعہ استعمال کیا جاتا ہے گیم کیوب اور Wii ایک عام بوٹ ہوا اس کی نشاندہی کرنے کے لئے.
- 0x1BADB002 (1 خراب بوٹ) کے ذریعہ استعمال کیا جاتا ہے ملٹی بوٹ جادو کی تعداد کے طور پر تفصیلات
- 0xDEADDEAD - ونڈوز کے ذریعہ اشارہ کرنے کے لئے استعمال کیا جاتا ہے a ڈیبگ کریش دستی طور پر شروع کیا ، بصورت دیگر اسے موت کی نیلی اسکرین کے نام سے جانا جاتا ہے۔
یقینا Theseیہ صرف وہی نہیں ہیں ، لیکن صرف مثالوں کی ایک مختصر فہرست ہے جو لطف محسوس کرتی ہے۔ کسی اور کے بارے میں جانتے ہو؟ ہمیں تبصرے میں بتائیں۔
اپنی ذات کے لئے مثالیں دیکھنا
آپ ہیکس ایڈیٹر کھول کر اور پھر فائل کی اقسام کی تعداد کو کھول کر مزید مثالیں دیکھ سکتے ہیں۔ ونڈوز ، OS X ، یا لینکس کے لئے بہت سارے فریویئر ہیکس ایڈیٹر دستیاب ہیں اس بات کو یقینی بنائیں کہ فریویئر انسٹال کرتے وقت محتاط رہیں تاکہ کراپ ویئر یا اسپائی ویئر سے متاثر نہ ہوں۔
ایک اضافی مثال کے طور پر ، اینڈروئیڈ فونز کے لئے بازیابی کی تصاویر جیسے کلاک ورک موڈ کا آغاز "اینڈروڈ!" سے ہوتا ہے۔ اگر ASCII کی شکل میں پڑھیں۔
نوٹ: جب آپ آس پاس دیکھ رہے ہو تو کچھ بھی تبدیل نہ کریں۔ ہیکس ایڈیٹرز چیزوں کو توڑ سکتے ہیں!