1 पॉइंट द्वारा GN⁺ 2025-06-25 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Power Mac G3 ROM के अंदर विश्लेषण करते समय संयोग से एक अनूठा Easter egg मिला
  • HPOE नाम के resource में डेवलपर्स की फोटो छिपी हुई है, यह पहले से पता था, लेकिन इसे वास्तव में कैसे दिखाया जाए यह अब तक रहस्य था
  • SCSI Manager कोड में "secret ROM image" टेक्स्ट दिखाई दिया, जिसने अहम सुराग दिया
  • RAM disk को एक खास नाम से format करने पर "The Team" फ़ाइल बनती है, और यह फ़ाइल छिपी हुई इमेज को सामने लाती है
  • यह तरीका Mac OS 9.0.4 तक काम करता है, और यह खोज संभवतः इस Easter egg का पहला सार्वजनिक खुलासा है

Power Mac G3 ROM में Easter egg मिलने की पृष्ठभूमि

  • हाल ही में Power Macintosh G3 के ROM का विश्लेषण करते समय अब तक आधिकारिक रूप से document न किया गया Easter egg मिला
  • विश्लेषण के लिए Hex Fiend और Eric Harmon का Mac ROM template ROM Fiend इस्तेमाल किया गया
  • यह 1997 से 1999 के बीच इस्तेमाल हुए beige desktop, minitower और all-in-one G3 मॉडल के ROM से संबंधित है
  • लेखक खुद भी इस बात पर हैरान है कि G3 को 27 साल से ज़्यादा हो चुके हैं

ROM में दिलचस्प खोजों का सार

  • सबसे पहले ध्यान HPOE type resource में मौजूद JPEG इमेज पर गया, जिसे उस समय इस मॉडल के विकास में शामिल लोगों की group photo माना जाता है
  • इस इमेज का पहले भी ज़िक्र हुआ था, लेकिन इसे वास्तव में कैसे दिखाया जाए यह सामने नहीं आया था
  • दूसरी दिलचस्प चीज़ nitt resource ID 43(Native 4.3) में मिली, जहाँ ये Pascal strings दिखीं: ".Edisk", "secret ROM image", "The Team"
  • पहले अनुमान था कि "secret ROM image" शायद DOS Mac के Easter egg से जुड़ा हो, लेकिन पुराना तरीका G3 पर काम नहीं करता

कोड विश्लेषण और तरीका निकालने की प्रक्रिया

  • इसके बाद कोड को reverse engineer करने का फैसला किया गया और पूरे nitt43 फ़ाइल को Ghidra में analyze किया गया
  • PowerPC assembly कोड परिचित नहीं था, लेकिन Ghidra decompiler की मदद से इसे काफ़ी readable code में बदला जा सका
  • इससे पता चला कि मुख्य function .EDisk(RAM disk) driver के साथ interact करता है
  • अगर "secret ROM image" नाम का volume (=RAM disk) detect होता है, तो HPOE resource ID 1 में मौजूद JPEG data को "The Team" नाम की फ़ाइल में लिखा जाता है

Easter egg को वास्तव में trigger करने का तरीका

  • विश्लेषण से पता चला कि RAM disk को "secret ROM image" नाम से format करने पर Easter egg सक्रिय हो जाता है
  • इस तरीके को Infinite Mac project जैसे online emulator में verify किया जा सकता है
  • क्रम इस प्रकार है:
    • Memory control panel में RAM disk सक्षम करें
    • Special menu से Restart चुनें
    • desktop पर लौटने के बाद RAM disk icon चुनें
    • Special menu में Erase Disk चुनें
    • नाम बिल्कुल "secret ROM image" दर्ज करें और Erase पर क्लिक करें
    • formatted RAM disk खोलने पर "The Team" फ़ाइल बन जाएगी
  • इस फ़ाइल को SimpleText आदि में खोलकर अंदर की इमेज देखी जा सकती है

Easter egg का महत्व और निष्कर्ष

  • परीक्षण में यह तरीका Mac OS 9.0.4 तक सही तरीके से काम करता पाया गया
  • अब तक यह ज्ञात था कि यह इमेज ROM में मौजूद है, लेकिन इसे trigger करने का वास्तविक तरीका पहली बार पूरी तरह सामने आया है
  • यह संभवतः उन आख़िरी Easter eggs में से एक है जिन्हें Steve Jobs के 1997 में Apple लौटने के बाद आधिकारिक रूप से प्रतिबंधित कर दिया गया था
  • कई परीक्षणों और सुरागों की मदद से यह छिपा हुआ फीचर दुनिया के सामने आया, और old Mac hardware/software analysis तथा ऐतिहासिक तकनीकी खोज के लिहाज़ से इसका बड़ा महत्व है

समापन

  • RAM disk को नया नाम देकर format करने जैसी साधारण प्रक्रिया से 27 साल से छिपी डेवलपमेंट टीम की अनौपचारिक यादगार इमेज सामने आई
  • Easter egg तकनीक, Apple की developer culture, और छिपे हुए डेवलपर इतिहास में रुचि रखने वाले पाठकों के लिए यह एक दिलचस्प मामला है

1 टिप्पणियां

 
GN⁺ 2025-06-25
Hacker News टिप्पणियाँ
  • मुझे लगता है कि ऐसे easter egg शुरुआती desktop PC दौर की भावना को बहुत मज़बूती से सामने लाते हैं; इनके कारण यह और भी महसूस होता है कि यह software सचमुच इंसानों ने बनाया है। पुराने समय की याद आती है, जब अक्सर कुछ गिने-चुने जुनूनी developers मिलकर ऐसी चीज़ें बनाते थे। आजकल Product People (planning/management विभाग) product की image को पूरी तरह control करना चाहते हैं, इसलिए कभी-कभी सब कुछ जान-बूझकर डरावने स्तर तक गैर-मानवीय लगने लगता है। सोचिए, अगर आज मेरे iPhone में कोई easter egg हो और उसे चलाने पर development में शामिल कुछ लोगों की photo या name random तरीके से दिख जाए, तो कितना मज़ा आए। लेकिन शायद वह Product People के मानकों पर खरा नहीं उतरेगा।
    • सोचता हूँ, क्या Agile अपनाने से पहले ऐसे easter egg ज़्यादा हुआ करते थे? Deadline-based development में अक्सर ऐसी स्थिति बनती है जहाँ टीम के कुछ लोगों को इंतज़ार करना पड़ता है, और backlog की भी अपनी सीमा होती है; ऐसे खाली समय में छोटी-सी ‘प्रेरणा’ और ‘मौका’ बन जाता था, इसलिए शायद easter egg जैसी चीज़ें ज़्यादा डाली जाती थीं।
    • Product People पर यह आलोचना कुछ ज़्यादा लगती है। पहले कुछ लोग मिलकर software बनाते थे, लेकिन अब एक ही project में हज़ारों लोग जुड़े होते हैं। ऐसे में बड़े software में सिर्फ कुछ developers के नाम दिखाने वाले easter egg का मतलब भी कम रह जाता है।
  • मैंने पहले Apple में ASIC और board design करने वाले एक सहकर्मी के साथ काम किया था। उसे इस बात का अफ़सोस था कि वह system hardware को बनाने और debug करने में बहुत मेहनत करता था, लेकिन software team ROM space बर्बाद करके अपनी ही टीम का glorifying image डाल देती थी, जबकि hardware team को पूरी तरह नज़रअंदाज़ कर दिया जाता था।
  • मुझे लगता है कि यह दिखाना बहुत अच्छा है कि किसी corporation के पीछे असली लोग होते हैं। बड़े धनवान लोग अक्सर “यह मैंने बनाया” कहकर असली श्रेय अपने नाम करना चाहते हैं, लेकिन असल काम करने वाले साधारण लोग इतिहास के किसी कोने में यह निशान छोड़ जाते हैं कि ‘हमारी आत्मा इसमें घुली हुई है’। हालाँकि, संभव है कि Steve Jobs ऐसे easter egg पर रोक लगा देते।
    • मैं व्यक्तिगत रूप से Jobs का fan नहीं था, लेकिन उन्हें बहुत सरल तरीके से villain की तरह देखना भी ठीक नहीं लगता। इस मामले में तो उल्टा Jobs खुद आगे थे, ऐसा ऐतिहासिक रिकॉर्ड भी है Apple की signing party देखें। और वैसे भी Microsoft ने 2000s की शुरुआत से “no easter eggs” policy अपनाई हुई थी, तो यह सिर्फ Jobs की खासियत नहीं थी।
    • जब Jobs संकट के समय Apple में वापस लौटे, तब उन्हें कहीं छिपी हुई obscure ROM image के अस्तित्व तक पता रहा होगा, ऐसा नहीं लगता। ज़्यादा संभावना है कि किसी साधारण engineer ने सफ़ाई करते-करते उसे हटा दिया हो। Jobs तो अक्सर Apple की बेहतरीन teams और उनकी creativity की खुलकर प्रशंसा करते थे, और अच्छी team building की अहमियत पर भी कई बार बोल चुके थे।
    • मेरा यह भी मानना है कि profit आख़िरकार वह श्रम है जिसकी मज़दूरी नहीं दी गई, लेकिन Meta-स्तर की salary की बात आने पर मुझे पुराने Mad Men का वह प्रसिद्ध संवाद याद आता है: जब कोई व्यक्ति अपने योगदान की पहचान चाहता है, तो जवाब मिलता है, “उसी लिए तुम्हें पैसे दिए जाते हैं।”
  • Amiga computer बनाने वाली टीम का मशहूर संदेश याद आ गया: “We made the Amiga, they f----d it up!” संबंधित लिंक
  • पुराने computing दौर की छोटी teams मुझे हमेशा दिलचस्प लगती हैं। काश, किसी दिन हम फिर उस तरह लौट पाते।
  • 90s में library में बैठकर MacWorld पढ़ते समय मुझे एक ऐसा trick पता चला था, जिसमें कुछ clicks और key input के ज़रिए processor से जुड़ी किसी चीज़ को unlock किया जा सकता था। ठीक-ठीक क्या था, यह अब याद नहीं, लेकिन वह Apple IIci 33mhz processor से जुड़ा कुछ था।
    • मेरे लिए सबसे बढ़िया याद यह है कि System 7.5 में अगर “secret about box” नाम का text clipping desktop पर drag करके छोड़ा जाता था, तो dev team members के नाम ‘ईंटों’ की तरह दिखाने वाला breakout game खुल जाता था। सचमुच शानदार दौर था।
  • मैंने iPad पर playground app में थोड़ा-सा code लिखकर ROM से अगला logo लाने वाला easter egg ढूँढा था। उस समय मैंने खुद भी इसे follow किया था, लेकिन उसके बाद मुझे इसका कोई reference फिर कभी नहीं मिला। यह लगभग 6 साल पहले की बात है।
  • easter egg की बहुत याद आती है। काश, वे फिर वापस आएँ।
    • सहमत। आजकल छोटे projects में थोड़े-बहुत दिख जाते हैं, लेकिन अच्छा होगा अगर बड़े projects में भी उनकी वापसी हो। बचपन में सिर्फ यह अफ़वाह कि किसी product में easter egg है, मुझे उसे और लंबे समय तक इस्तेमाल करने के लिए काफ़ी थी। अब तो Android के easter egg भी फीके लगते हैं; developer mode में मुश्किल से unlock करने के बाद भी ज़्यादा उत्साह नहीं होता, यह काफ़ी निराशाजनक है।
    • हमारी team project में एक छोटा easter egg FILE_ID.DIZ में है लिंक
  • यह बात प्रभावशाली है कि ऐसा easter egg mechanism इतने लंबे समय तक किसी को मिला ही नहीं। इससे सचमुच महसूस होता है कि reverse engineering वाकई कितनी कठिन है। अगर इसमें शुरुआत करनी हो, तो कहाँ से शुरू किया जा सकता है? कोई online tutorial या recommended book हो तो सलाह दें।
    • Video games, खासकर NES जैसी पुरानी consoles, शुरुआत के लिए बहुत अच्छी रहती हैं। कोशिश करने पर नतीजा तुरंत दिख जाता है, इसलिए रुचि भी बनी रहती है, और related tools भी बहुत हैं। उदाहरण के लिए, Mesen में किसी NES game को debugging tools के साथ चलाकर देखें और nesdev.org देखें। अगर game पहले से reverse engineer की जा चुकी हो, तो Data Crystal पर अतिरिक्त जानकारी मिल सकती है। Modern software ज़्यादा कठिन है, लेकिन मैंने पहले Gamecube game hacking पर कुछ लिखा था: Super Monkey Ball hacking part 1 part 2, decompilation with ghidra HN discussion भी देखें
  • अफ़सोस है कि यह चीज़ Stump the Experts (Apple से जुड़ा quiz show) में नहीं आई; वहाँ यह एकदम परफ़ेक्ट विषय होता।