Power Mac G3 ROM में 27 साल पुराने Easter egg की खोज की कहानी
(downtowndougbrown.com)- 1997~1999 के beige Power Macintosh G3 ROM में एक छिपी हुई टीम फोटो थी, लेकिन असली डिवाइस पर उसे दिखाने का तरीका 2025 तक ज्ञात नहीं था
- निर्णायक सुराग
nittresource ID 43 “Native 4.3” के अंत में मौजूद.Edisk,secret ROM image,The Teamजैसे Pascal strings से मिला, और यह resource PowerPC-native SCSI Manager 4.3 code था Ghidraसे PEF executable को reverse engineer करने पर यह flow दिखा कि जब RAM disk volume का नामsecret ROM imageहो, तोHPOEresource ID 1 के JPEG कोThe Teamfile के रूप में लिखा जाता है- इसे activate करने का तरीका है RAM Disk चालू करके restart करना, फिर RAM Disk को erase करते समय format dialog में बिल्कुल
secret ROM imageदर्ज करना; यह emulator और असली desktop G3 दोनों पर reproduce हुआ - कई tests के आधार पर यह तरीका Mac OS 9.0.4 तक काम करता दिखता है, और संभव है कि 9.1 पहला version हो जिसमें यह अब काम नहीं करता
ROM के अंदर बची हुई छिपी टीम फोटो
- Power Macintosh G3 ROM की जांच के दौरान, एक अब तक undocumented Easter egg activation method सामने आया
- संबंधित ROM 1997~1999 में जारी beige desktop, minitower और all-in-one G3 models में इस्तेमाल हुआ था
- ROM exploration के लिए Hex Fiend और Eric Harmon का Mac ROM template ROM Fiend इस्तेमाल किए गए
- ROM के अंदर
HPOEtype resource में इस Mac model पर काम करने वाले लोगों जैसे दिखने वाले कई लोगों की JPEG photos थीं - photos का मौजूद होना अपने-आप में नई खोज नहीं है; Pierre Dandumont ने 2014 में इसे पहले ही cover किया था
- उस समय असली डिवाइस पर इस image को दिखाने का तरीका verify नहीं हुआ था
- कुछ और पुराने Macs में ऐसी photo दिखाने के लिए secret key combinations थे, लेकिन G3 ROM photo दिखाने का तरीका रहस्य बना रहा
सुराग बना SCSI Manager 4.3 resource
- आगे exploration में
nittresource ID 43, नाम “Native 4.3” मिला - Keith Kaisershot की Pippin research की वजह से जल्दी समझ आ गया कि यह resource PowerPC-native SCSI Manager 4.3 code है
- resource के अंत में Easter egg से जुड़ सकने वाली Pascal strings थीं
.Edisksecret ROM imageThe Team
- खासकर
secret ROM imageके पहले मिली hidden photo से संबंधित होने की संभावना ज्यादा थी - internet search के नतीजे में पता चला कि वही phrase पहले के PowerPC Mac के Easter egg में भी इस्तेमाल हुआ था
- पुराने devices में यह phrase type करके select करने और फिर desktop पर drag करने से photo दिखाई देती थी
- लेकिन वही तरीका G3 पर काम नहीं करता था
Ghidra से confirm हुआ असली code flow
nittresource ID 43 को पूरा file के रूप में extract करने पर यहPowerPC PEF executableके रूप में पहचाना गया- file के पहले 12 bytes
Joy!peffpwpcथे, और Ghidra ने इसे सीधे PEF file के रूप में load कर लिया - पहली analysis में
secret ROM imagestring references सही से नहीं पकड़े गए, लेकिन Auto Analyze को एक बार और चलाने पर relevant strings के और references मिले - संबंधित function
.EDiskdriver, यानी RAM disk driver, से जुड़े काम कर रहा था - decompile result का core behavior यह था
.Ediskनाम का driver ढूंढता है- उस driver से जुड़ी disk, यानी RAM disk, ढूंढता है
- उस disk से जुड़ा volume ढूंढता है
- अगर volume name
secret ROM imageहो:HPOEresource ID 1 load करके JPEG image data लाता है- creator
ttxtऔर typeJPEGवालाThe Teamfile बनाता है - file खोलकर JPEG data लिखता है और फिर close करता है
- इसके बाद driver control entry से जुड़े अतिरिक्त operations करता है
- यह function सिर्फ एक और जगह से call हुआ था, और call site यह check कर रही थी कि पहला argument
0x3DA(decimal 986) है या नहीं
RAM Disk format करके activate करने का तरीका
- असली beige G3 तत्काल उपलब्ध न होने पर खोज Libera के
#mac68kchannel में share की गई, और^alexने Infinite Mac experiment से यह पता लगाया कि RAM Disk erase करने की प्रक्रिया जरूरी है - बाद में desktop G3 के असली hardware पर भी यही तरीका काम कर गया
- browser में Mac OS 8.1 install किए हुए emulated beige G3 चलाकर इसे reproduce किया जा सकता है
- यह DingusPPC इस्तेमाल करता है
- startup पर alias resolution failure error दिखने की एक खास बात है; error आए तो Stop दबा दें
- reproduce करने की प्रक्रिया यह है
- Memory control panel में RAM Disk activate करें
- Special menu से Restart चुनें
- desktop फिर दिखाई देने पर RAM Disk icon select करें
- Special menu से Erase Disk चुनें
- format dialog में बिल्कुल
secret ROM imageदर्ज करें - Erase पर click करें
- नए format किए गए RAM Disk को खोलने पर
The Teamनाम का file दिखाई देगा - उस file पर double-click करने से SimpleText खुलता है
Mac OS 9.0.4 तक बचा हुआ आखिरी दौर का Easter egg
- कई लोगों के tests और direct testing के अनुसार यह तरीका Mac OS 9.0.4 तक काम करता दिखता है
- संभव है कि Mac OS 9.1 पहला version हो जिसमें यह तरीका अब काम नहीं करता
- अब तक confirm की जा सकने वाली सीमा में यह secret नई खोज जैसा दिखता है
- ROM के अंदर image होने की बात पहले से ज्ञात थी
- लेकिन उसे वास्तव में activate कैसे करना है, यह documented नहीं था
- यह Easter egg उन आखिरी दौर के Mac Easter eggs में से एक हो सकता है जो 1997 में Steve Jobs की Apple में वापसी के बाद Easter eggs पर ban लगाए जाने की reports से पहले शामिल किए गए थे
- अगर
^alexने RAM Disk erase करने वाली activation condition न खोजी होती, तो संभवतः बाकी code को और trace करना पड़ता
1 टिप्पणियां
Hacker News की राय
ऐसे ईस्टर एग कुल मिलाकर शुरुआती desktop PC दौर का माहौल बहुत जोर से याद दिलाते हैं
यह एक बहुत मानवीय तत्व था, जो हमें इस बात से जोड़ता था कि product के पीछे चेहरे और नाम वाले लोग थे जिन्होंने उसे बनाया था
उस समय ये hardcore nerds के जुनून से बने projects होते थे, लेकिन आजकल माहौल ऐसा है कि product abstraction layer के पार देखने ही न दिया जाए
product संभालने वाले लोग product की पूरी image नियंत्रित रखना चाहते हैं, और अगर credits की list बहुत बड़ी हो या उसमें कोई व्यक्ति बाद में problematic बन जाए, तो शायद उन्हें dehumanize करना ही ज्यादा सुरक्षित लगता है
आज के हिसाब से iPhone में ऐसा शानदार ईस्टर एग कल्पना किया जा सकता है जो हर बार activate करने पर development में शामिल कुछ लोगों को random तरीके से दिखाए; मुझे निजी तौर पर यह पसंद आएगा, लेकिन product संभालने वाले लोगों के refined taste को शायद यह खटक जाएगा
deadline-driven development में team का कोई हिस्सा milestone पार करने के लिए दूसरे team members के कुछ खत्म करने का इंतजार करता है, और backlog में ही लगातार खंगालते रहने की भी सीमा होती है
boredom और “छोटी-सी चीज चुपके से डाल भी दें तो roadmap पर असर नहीं पड़ेगा” वाली rationalization मिल जाएं, तो motivation और opportunity दोनों बहुत बढ़ जाते हैं
खासकर अब, जब software इतना जटिल और बड़ा हो गया है; और पता नहीं company में मजाकिया चीज बनाने का समय भी होता है या नहीं
हमेशा 120% पर काम करने जैसा लगता है
पुराने software कुछ लोगों द्वारा बनाए जाते थे, लेकिन अब एक ही organization के भीतर हजारों लोग शामिल होते हैं
अच्छा हो या बुरा, reality यही है, और आज के बड़े software projects में सिर्फ कुछ लोगों को highlight करने वाला ईस्टर एग ज्यादा meaningful नहीं लगता
काफी बढ़िया है, और दिखाता है कि companies के पीछे असली लोग होते हैं
कुछ अमीर लोग “मैंने बनाया” कहकर छोटे लोगों की उपलब्धियों का credit भी छीन लेते हैं
वहीं असली छोटे लोग इतिहास में यह निशान छोड़ जाते हैं कि “नहीं, इसे हासिल करने के लिए हमने अपनी आत्मा लगाई थी”
बेशक Steve Jobs होते तो शायद इसे ban कर देते
इस विषय में तो वे बल्कि ऐसे trend की शुरुआत के करीब थे: https://www.folklore.org/Signing_Party.html
इसलिए इसे “बेशक” कहने वाली बात नहीं है, और Microsoft की भी 2000s की शुरुआत से ईस्टर एग ban policy थी, इसलिए यह सिर्फ Jobs की समस्या भी नहीं थी
ज्यादा plausible यह है कि ऐसे “असली लोगों” में से किसी एक ने cleanup करते समय उसे हटा दिया हो
Jobs ने Apple में काम करने वाले अद्भुत लोगों के बारे में सार्वजनिक रूप से अक्सर बात की, और Walt Mossberg से भी बेहतरीन team बनाने और creativity को बढ़ावा देने की अहमियत पर बात की थी
“वही तो उस पैसे का मकसद है!”
मैंने कभी ऐसे व्यक्ति के साथ काम किया था जिसने 80s से 90s के मध्य तक Apple में ASIC और board design किया था
एक बार hardware team ने system design और debug में खून-पसीना बहाया था, लेकिन software side ने ROM image के करीब 50KB इस्तेमाल करके computer design करने वाली team की प्रशंसा की और hardware team को पूरी तरह छोड़ दिया—इस बात पर वह बहुत नाराज था
“We made the Amiga, they f----d it up!” वाला message याद आता है
https://arstechnica.com/gadgets/2007/12/amiga-history-part-5...
ईस्टर एग की सच में बहुत याद आती है
काश इन्हें वापस लाया जाए
आजकल शायद छोटे projects में ही दिखते हों, लेकिन मैं इन्हें बड़े पैमाने के कामों में भी देखना चाहूंगा
बचपन में जब किसी product के अंदर ईस्टर एग मिल जाता या उसके बारे में सुनता, तो सिर्फ उसे खोजने के लिए भी उस product को ज्यादा इस्तेमाल करता था
अफसोस है कि छिपी हुई छोटी खुशियां पहले जितनी popular नहीं रहीं, और दुख होता है कि latest Android versions तक में “ईस्टर एग” बस इतना boring रह गया है कि developer features खोलने वाले user को भी निराशाजनक रूप से मामूली interaction देता है
https://raw.githubusercontent.com/tirrenotechnologies/tirren...
पहले किसी ने iPad पर playground app में छोटा code लिखकर ROM के Next logo जैसा कुछ बुलाने वाला ईस्टर एग share किया था
उस समय मैंने उसे reproduce किया था, लेकिन बाद में उससे जुड़ी सामग्री फिर नहीं ढूंढ पाया
लगभग 6 साल पहले की बात थी
प्रभावशाली
यह दिलचस्प है कि इस Easter egg के trigger mechanism को किसी के खोजने में इतना लंबा समय लग गया
reverse engineering मुश्किल है
अब जिज्ञासा है कि reverse engineering कहाँ सीखी जा सकती है
कहाँ से शुरू करें, और क्या कोई online tutorial या किताब की सिफारिश है
प्रयोगों के नतीजे तुरंत दिख जाते हैं और device भी सरल होता है
हालांकि hardware “API” आधुनिक programmers को काफी intuitive नहीं लग सकता
hacking और reverse engineering के tools भी पहले से काफी बने हुए हैं, इसलिए अपनी पसंद का NES game Mesen में चलाएँ और browser में nesdev.org खुला रखकर debugging tools से छेड़छाड़ करें
अगर जिस game पर काम कर रहे हैं उसे किसी ने पहले ही reverse engineer किया है, तो https://datacrystal.tcrf.net पर भी उपयोगी जानकारी मिल सकती है
ज्यादा आधुनिक software को reverse engineer करना पेचीदा है
Gamecube game hacking पर पहले लिखे दो लेख भी मजेदार हो सकते हैं: https://www.smokingonabike.com/2021/01/17/hacking-super-monk..., https://www.smokingonabike.com/2021/02/28/hacking-super-monk...
संबंधित HN चर्चा: https://news.ycombinator.com/item?id=26315368
कई मामलों में बस किसी ने पहली बार code में गहराई से झांकने की कोशिश की होती है
खासकर Ghidra की वजह से कम लोकप्रिय architectures पर भी decompilation बहुत आसान हो जाने के बाद तो और भी
एक बार करके देखना चाहिए; कम मेहनत में मिलने वाली चीजें काफी हैं
पहले मैंने भी ऐसा ही एक मामला submit किया था
सौभाग्य से, दूसरे operating system Easter eggs के उलट इसमें शायद “खराब support वाले executable format के bitmap resource में stored chained XOR” जैसी obfuscation नहीं थी: https://x.com/mswin_bat/status/1504788425525719043
लोग अक्सर Steve Jobs को बहुत ज्यादा देवता जैसा बना देते हैं, लेकिन मुझे यकीन नहीं
निजी तौर पर मुझे Mac का भटकाव वाला दौर भी काफी पसंद है
ऐसी चीजें पढ़कर लगता है कि Jobs की वापसी से, भले कुल मिलाकर फायदा हुआ हो, Apple की culture और identity ने कुछ खो दिया
Sculley, Spindler, Amelio सबसे अच्छे नेता नहीं थे, और Apple Pink/Taligent, Copland, PowerBook 5300, Performa 5200/6200/5300/6300 series जैसे hardware failures से बुरी तरह डगमगा गया था
खासकर 1995 Apple के लिए आपदा जैसा साल था
फिर भी इस दौर में कई शानदार बातें थीं
Jean Louis Gassée ने expandable Mac के लिए लड़ाई लड़ी, और उनका प्रभाव Macintosh II तक पहुँचा, जिसने “trash can” 2013 Mac Pro आने तक न टूटने वाली expandable Macs की लंबी परंपरा शुरू की
System 7 सबसे stable operating system नहीं था, लेकिन UI बेहतरीन था
Don Norman और Bruce Tognazzini ने मजबूत UI/UX principles और guidelines को आगे बढ़ाया, और HyperCard भी इसी दौर की देन था
Larry Tesler, Alan Kay आदि के साथ Apple के Advanced Technology Group ने Dylan programming language और SK8 environment जैसे दिलचस्प projects पर काम किया
OpenDoc भी component-based software platform बनाने की एक दिलचस्प कोशिश थी
classic Mac OS में एक आरामदेह और शरारती-सा एहसास भी था, जो Mac OS X पर जाने के साथ गायब हो गया
बेशक, मैं Mac OS X के लिए बहुत आभारी हूँ
मुझे “interregnum” वाला Apple भी पसंद है, और Jobs की वापसी के बाद 1997–2011 वाला Apple भी, लेकिन Tim Cook का Apple मुझे खास पसंद नहीं
उसी समय से लगा कि Apple अपनी जड़ों से काफी बदल गया
आर्थिक रूप से Apple इतिहास में सबसे सफल हुआ है, लेकिन Mac में अब 1990s या 2000s वाला एहसास नहीं रहा
Apple अब Mac company से iPhone company बन गया है
यह Stump the Experts के लिए बिल्कुल perfect material होता, लेकिन खैर
शुरुआती computing के दिनों की teams कितनी छोटी थीं, यह हमेशा मोहक लगता है, और काश किसी तरह उस दौर में वापस जा पाते