เรื่องราวการค้นพบอีสเตอร์เอ็กอายุ 27 ปีใน ROM ของ Power Mac G3
(downtowndougbrown.com)- ใน ROM ของ Power Macintosh G3 สีเบจช่วงปี 1997–1999 มี ภาพถ่ายทีมที่ซ่อนอยู่ แต่ยังไม่เป็นที่รู้กันจนถึงปี 2025 ว่าจะเรียกแสดงบนเครื่องจริงได้อย่างไร
- เบาะแสสำคัญมาจาก Pascal string อย่าง
.Edisk,secret ROM image,The Teamที่ท้ายnittresource ID 43 “Native 4.3” และรีซอร์ซนี้ก็คือโค้ด SCSI Manager 4.3 แบบ native สำหรับ PowerPC - เมื่อลองวิศวกรรมย้อนกลับไฟล์ปฏิบัติการ PEF ด้วย
Ghidraก็ยืนยันลำดับการทำงานได้ว่า ถ้าชื่อโวลุม RAM disk เป็นsecret ROM imageระบบจะเขียน JPEG จากHPOEresource ID 1 ออกมาเป็นไฟล์The Team - วิธีเปิดใช้งานคือเปิด RAM Disk แล้วรีสตาร์ต จากนั้นตอนลบ RAM Disk ให้พิมพ์
secret ROM imageลงในหน้าต่างฟอร์แมตให้ตรงเป๊ะ ซึ่งทำซ้ำได้ทั้งบน อีมูเลเตอร์และเดสก์ท็อป G3 เครื่องจริง - จากการทดสอบหลายกรณี วิธีนี้ดูเหมือนจะใช้ได้ จนถึง Mac OS 9.0.4 และมีความเป็นไปได้ว่า 9.1 คือเวอร์ชันแรกที่ไม่รองรับแล้ว
ภาพถ่ายทีมที่ซ่อนอยู่ใน ROM
- ระหว่างการตรวจสอบ ROM ของ Power Macintosh G3 ก็พบ วิธีเปิดใช้งานอีสเตอร์เอ็ก ที่ยังไม่เคยมีการบันทึกไว้
- ROM เป้าหมายถูกใช้กับ G3 รุ่นเดสก์ท็อป มินิทาวเวอร์ และออลอินวันสีเบจที่วางจำหน่ายในช่วงปี 1997–1999
- เครื่องมือที่ใช้สำรวจ ROM คือ Hex Fiend และ ROM Fiend เทมเพลต Mac ROM ของ Eric Harmon
- ภายในรีซอร์ซชนิด
HPOEใน ROM มีภาพ JPEG ของคนหลายคน ซึ่งดูเหมือนจะเป็นผู้ที่ทำงานกับ Mac รุ่นนี้ - การมีอยู่ของภาพเหล่านี้ไม่ใช่เรื่องที่เพิ่งค้นพบ และ Pierre Dandumont เคยกล่าวถึงไว้แล้วในปี 2014
- แต่ตอนนั้นยังยืนยันไม่ได้ว่าจะทำให้ภาพเหล่านี้แสดงบนเครื่องจริงได้อย่างไร
- Mac รุ่นเก่าบางรุ่นมีคีย์ลัดลับสำหรับแสดงภาพลักษณะคล้ายกัน แต่วิธีแสดงภาพใน ROM ของ G3 ยังเป็นปริศนาอยู่
รีซอร์ซ SCSI Manager 4.3 ที่กลายเป็นเบาะแส
- ระหว่างการสำรวจเพิ่มเติม มีการพบ
nittresource ID 43 ชื่อ “Native 4.3” - จาก งานวิจัย Pippin ของ Keith Kaisershot จึงสรุปได้อย่างรวดเร็วว่ารีซอร์ซนี้คือ โค้ด SCSI Manager 4.3 แบบ native สำหรับ PowerPC
- ที่ส่วนท้ายของรีซอร์ซมี Pascal string ที่ดูเกี่ยวข้องกับอีสเตอร์เอ็กอยู่
.Edisksecret ROM imageThe Team
- โดยเฉพาะ
secret ROM imageมีแนวโน้มสูงว่าจะเกี่ยวข้องกับภาพที่ซ่อนอยู่ซึ่งพบก่อนหน้านี้ - จากการค้นหาบนอินเทอร์เน็ต พบว่าข้อความเดียวกันนี้เคยถูกใช้ใน อีสเตอร์เอ็กของ PowerPC Mac รุ่นก่อนหน้า ด้วย
- ในเครื่องรุ่นก่อน วิธีคือพิมพ์ข้อความนี้ เลือกมัน แล้วลากไปยังเดสก์ท็อป ภาพก็จะปรากฏขึ้น
- แต่วิธีเดียวกันนี้ใช้กับ G3 ไม่ได้ผล
ตรวจสอบลำดับการทำงานของโค้ดจริงด้วย Ghidra
- เมื่อดึง
nittresource ID 43 ทั้งก้อนออกมาเป็นไฟล์ ก็ถูกระบุว่าเป็นPowerPC PEF executable - 12 ไบต์แรกของไฟล์คือ
Joy!peffpwpcและ Ghidra สามารถโหลดเป็นไฟล์ PEF ได้ทันที - ในการวิเคราะห์ครั้งแรก ยังจับการอ้างอิงถึงสตริง
secret ROM imageได้ไม่ครบ แต่เมื่อรัน Auto Analyze อีกรอบ ก็พบการอ้างอิงของสตริงที่สนใจเพิ่มขึ้น - ฟังก์ชันดังกล่าวเกี่ยวข้องกับ
.EDiskdriver หรือก็คือ ไดรเวอร์ RAM disk - จากผล decompile พฤติกรรมหลักมีดังนี้
- ค้นหาไดรเวอร์ชื่อ
.Edisk - ค้นหาดิสก์ที่เชื่อมกับไดรเวอร์นั้น หรือก็คือ RAM disk
- ค้นหาโวลุมที่เชื่อมกับดิสก์นั้น
- ถ้าชื่อโวลุมคือ
secret ROM image:- โหลด
HPOEresource ID 1 เพื่อนำข้อมูลภาพ JPEG ออกมา - สร้างไฟล์
The Teamโดยมี creator เป็นttxtและ type เป็นJPEG - เปิดไฟล์ เขียนข้อมูล JPEG ลงไป แล้วปิดไฟล์
- จากนั้นทำงานเพิ่มเติมที่เกี่ยวข้องกับ driver control entry
- โหลด
- ค้นหาไดรเวอร์ชื่อ
- ฟังก์ชันนี้ถูกเรียกจากที่อื่นเพียงแห่งเดียว และจุดเรียกนั้นตรวจสอบว่าอาร์กิวเมนต์ตัวแรกเป็น
0x3DA(เลขฐานสิบ 986) หรือไม่
วิธีเปิดใช้งานผ่านการฟอร์แมต RAM Disk
- ระหว่างที่ยังไม่มีเครื่อง Beige G3 จริงอยู่ตรงหน้า ผู้เขียนได้แชร์สิ่งที่ค้นพบในช่อง
#mac68kของ Libera และ^alexก็พบจากการทดลองบน Infinite Mac ว่าต้องมีขั้นตอน ลบ RAM Disk - หลังจากนั้นก็ยืนยันได้ว่าวิธีเดียวกันนี้ใช้ได้บนฮาร์ดแวร์เดสก์ท็อป G3 จริงเช่นกัน
- สามารถทดลองซ้ำในเบราว์เซอร์ได้ผ่าน Beige G3 จำลองที่ติดตั้ง Mac OS 8.1
- ใช้ DingusPPC
- ตอนเริ่มต้นมีจุดแปลกคือจะขึ้นข้อผิดพลาดเรื่อง alias resolve ล้มเหลว และถ้าข้อความนี้โผล่มาให้กด Stop
- ขั้นตอนการทำซ้ำมีดังนี้
- เปิดใช้งาน RAM Disk ใน Memory control panel
- เลือก Restart จากเมนู Special
- เมื่อเดสก์ท็อปกลับมาอีกครั้ง ให้เลือกไอคอน RAM Disk
- เลือก Erase Disk จากเมนู Special
- พิมพ์
secret ROM imageลงในหน้าต่างฟอร์แมตให้ตรงตามตัวอักษรทุกประการ - คลิก Erase
- เมื่อเปิด RAM Disk ที่ฟอร์แมตใหม่ จะพบไฟล์ชื่อ
The Team - เมื่อดับเบิลคลิกไฟล์ดังกล่าว SimpleText จะเปิดขึ้นมา
อีสเตอร์เอ็กยุคท้าย ๆ ที่ยังอยู่จนถึง Mac OS 9.0.4
- จากการทดสอบของหลายคนและการทดสอบด้วยตนเอง ดูเหมือนว่าวิธีนี้ ยังใช้ได้จนถึง Mac OS 9.0.4
- มีความเป็นไปได้ว่า Mac OS 9.1 เป็นเวอร์ชันแรกที่วิธีนี้ใช้ไม่ได้อีกต่อไป
- เท่าที่ตรวจสอบได้ในตอนนี้ ดูเหมือนว่าความลับนี้เพิ่งถูกค้นพบใหม่
- เรื่องที่ว่ามีภาพอยู่ใน ROM นั้นเป็นที่รู้กันอยู่แล้ว
- แต่ยังไม่มีการบันทึกไว้ว่าต้องเปิดใช้งานอย่างไรจริง ๆ
- อีสเตอร์เอ็กนี้อาจเป็นหนึ่งในอีสเตอร์เอ็กยุคท้าย ๆ ที่ถูกใส่ไว้ใน Mac ก่อนมีรายงานว่า Steve Jobs สั่งห้ามอีสเตอร์เอ็กหลังกลับสู่ Apple ในปี 1997
- ถ้า
^alexไม่ได้ค้นพบเงื่อนไขว่าต้องลบ RAM Disk ก็คงมีความเป็นไปได้สูงว่าจะต้องไล่ตามโค้ดส่วนที่เหลือต่อไปอีก
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
อีสเตอร์เอ้กแบบนี้โดยรวมให้บรรยากาศของ ยุคพีซีเดสก์ท็อปยุคแรก อย่างชัดเจน
มันเป็นองค์ประกอบที่มีความเป็นมนุษย์มาก ๆ เชื่อมให้เห็นว่าผลิตภัณฑ์นี้สร้างโดยผู้คนที่มีใบหน้าและชื่ออยู่เบื้องหลัง
ตอนนั้นเป็นโปรเจกต์ที่เหล่าเนิร์ดสายฮาร์ดคอร์ทำกันด้วยแพสชัน แต่ทุกวันนี้บรรยากาศกลับโน้มไปทางไม่อยากให้ใครมองเห็นอะไรที่อยู่นอกเหนือชั้น abstraction ของผลิตภัณฑ์
คนดูแลผลิตภัณฑ์อยากควบคุมภาพรวมทั้งหมดของผลิตภัณฑ์ และถ้าคิดว่ารายชื่ออาจยาวเกินไป หรือใครบางคนในนั้นอาจกลายเป็นปัญหาในภายหลัง การทำให้ไร้ความเป็นมนุษย์ก็ดูจะปลอดภัยกว่า
ถ้าเป็นตอนนี้ ผมนึกภาพอีสเตอร์เอ้กเท่ ๆ บน iPhone ที่ทุกครั้งที่เปิดใช้จะแสดงชื่อคนบางส่วนที่มีส่วนร่วมในการพัฒนาแบบสุ่มได้เลย ส่วนตัวผมน่าจะชอบ แต่คงขัดหูขัดตารสนิยมอันสูงส่งของคนดูแลผลิตภัณฑ์
ในการพัฒนาที่ขับเคลื่อนด้วยเดดไลน์ มักเกิดสถานการณ์ที่บางส่วนของทีมต้องรอให้สมาชิกทีมคนอื่นทำอะไรบางอย่างเสร็จเพื่อข้าม milestone ไปให้ได้ และการนั่งคุ้ย backlog ไปเรื่อย ๆ ก็มีขีดจำกัด
เมื่อความเบื่อมาบรรจบกับการหาเหตุผลเข้าข้างตัวเองว่า “แอบใส่อะไรเล็ก ๆ น้อย ๆ เข้าไปคงไม่กระทบ roadmap หรอก” แรงจูงใจและโอกาสก็มีมากขึ้นมาก
ยิ่งตอนนี้ซอฟต์แวร์ซับซ้อนและใหญ่ขนาดนี้ยิ่งเป็นแบบนั้น และก็ไม่รู้ด้วยว่าบริษัทมีเวลาให้ทำอะไรตลก ๆ หรือเปล่า
รู้สึกเหมือนต้องทำงาน 120% ตลอดเวลา
ซอฟต์แวร์สมัยก่อนสร้างโดยคนกลุ่มเล็ก ๆ แต่ตอนนี้มีคนหลายพันคนเกี่ยวข้องอยู่ในองค์กรเดียว
จะดีหรือร้าย นี่ก็คือความเป็นจริง และในโปรเจกต์ซอฟต์แวร์ขนาดใหญ่ยุคปัจจุบัน อีสเตอร์เอ้กที่เน้นคนเพียงไม่กี่คนจึงไม่ค่อยสมเหตุสมผลนัก
ค่อนข้างเจ๋ง และแสดงให้เห็นว่าข้างหลังบริษัทมี คนจริง ๆ อยู่
คนรวยบางคนชอบพูดว่า “ผมเป็นคนสร้าง” แล้วฉกฉวยความสำเร็จของคนตัวเล็ก ๆ ไป
ในทางกลับกัน คนตัวเล็ก ๆ ตัวจริงก็ทิ้งร่องรอยไว้ในประวัติศาสตร์ว่า “ไม่ใช่ เราต่างหากที่ทุ่มจิตวิญญาณเพื่อทำสิ่งนี้ให้สำเร็จ”
แน่นอนว่า Steve Jobs คงสั่งห้ามแน่
ในประเด็นนี้ เขาน่าจะใกล้เคียงกับผู้ริเริ่มแนวทางแบบนี้ด้วยซ้ำ: https://www.folklore.org/Signing_Party.html
ดังนั้นไม่ใช่เรื่องที่จะพูดว่า “แน่นอน” ได้ และ Microsoft ก็มี นโยบายห้ามอีสเตอร์เอ้ก ตั้งแต่ต้นทศวรรษ 2000 เช่นกัน จึงไม่ใช่ปัญหาเฉพาะของ Jobs
ที่เป็นไปได้มากกว่าคือหนึ่งใน “คนจริง ๆ” เหล่านั้นลบมันทิ้งระหว่างงานเก็บกวาด
Jobs พูดต่อสาธารณะบ่อยครั้งถึงผู้คนยอดเยี่ยมที่ทำงานใน Apple และยังเคยคุยกับ Walt Mossberg ด้วยว่าการสร้างทีมที่ยอดเยี่ยมและหล่อเลี้ยงความคิดสร้างสรรค์สำคัญเพียงใด
“เงินนั่นแหละที่จ่ายมาเพื่อสิ่งนั้น!”
ผมเคยทำงานกับคนที่เคยทำ ASIC และการออกแบบบอร์ด ที่ Apple ตั้งแต่ยุค 80 ถึงกลางยุค 90
ครั้งหนึ่งทีมฮาร์ดแวร์ทุ่มเทเลือดตาแทบกระเด็นกับการออกแบบและดีบักระบบ แต่ฝ่ายซอฟต์แวร์กลับใช้พื้นที่ภาพ ROM ราว 50KB เพื่อยกย่องทีมที่ออกแบบคอมพิวเตอร์ โดยลืมทีมฮาร์ดแวร์ไปโดยสิ้นเชิง เขาเลยโกรธมาก
นึกถึงข้อความ “We made the Amiga, they f----d it up!”
https://arstechnica.com/gadgets/2007/12/amiga-history-part-5...
คิดถึง อีสเตอร์เอ้ก จริง ๆ
อยากให้เอากลับมาอีก
ทุกวันนี้อาจเห็นได้แค่ในโปรเจกต์เล็ก ๆ แต่ก็อยากเห็นในงานขนาดใหญ่กว่านี้ด้วย
ตอนเด็ก ๆ เวลาเจอหรือได้ยินเรื่องอีสเตอร์เอ้กในผลิตภัณฑ์ ผมจะยิ่งใช้ผลิตภัณฑ์นั้นมากขึ้น เพียงเพื่อหามันให้เจอ
น่าเสียดายที่ความสุขเล็ก ๆ ที่ซ่อนไว้ไม่เป็นที่นิยมเท่าเมื่อก่อน และน่าเศร้าที่แม้แต่ Android เวอร์ชันล่าสุดก็มีแค่ “อีสเตอร์เอ้ก” น่าเบื่อที่ให้ปฏิสัมพันธ์จืดชืดจนน่าผิดหวังกับผู้ใช้ที่ต้องเปิดฟีเจอร์นักพัฒนาก่อน
https://raw.githubusercontent.com/tirrenotechnologies/tirren...
เมื่อก่อนเคยมีคนแชร์ อีสเตอร์เอ้ก ที่เขียนโค้ดเล็ก ๆ ในแอป playground บน iPad แล้วเรียกอะไรสักอย่างคล้ายโลโก้ถัดไปของ ROM ออกมา
ตอนนั้นผมทำตามได้ แต่หลังจากนั้นก็หาเอกสารที่เกี่ยวข้องไม่เจออีกเลย
น่าจะประมาณ 6 ปีก่อน
น่าประทับใจ
น่าสนใจที่ต้องใช้เวลานานขนาดนั้นกว่าจะมีใครพบกลไกที่ทำให้อีสเตอร์เอ้กนี้ทำงาน
Reverse engineering นั้นยาก
ตอนนี้เลยสงสัยว่าจะไปเรียน reverse engineering ได้จากที่ไหน
สงสัยว่าควรเริ่มจากตรงไหน และมีบทเรียนออนไลน์หรือหนังสือแนะนำไหม
ผลการทดลองมองเห็นได้ทันที และตัวอุปกรณ์ก็เรียบง่าย
แต่ “API” ของฮาร์ดแวร์อาจไม่ค่อยเป็นธรรมชาติสำหรับโปรแกรมเมอร์ยุคใหม่เท่าไร
เครื่องมือสำหรับแฮ็กและ reverse engineering ก็มีทำไว้มากแล้ว แค่เอาเกม NES ที่ชอบไปรันใน Mesen แล้วเปิด nesdev.org ไว้ในเบราว์เซอร์ จากนั้นลองเล่นกับเครื่องมือดีบักได้เลย
ถ้าเกมที่กำลังดูมีคน reverse engineer ไว้แล้ว ก็อาจพบข้อมูลที่เป็นประโยชน์ได้ที่ https://datacrystal.tcrf.net
การ reverse engineer ซอฟต์แวร์ที่ทันสมัยกว่านั้นยุ่งยากกว่า
บทความสองตอนที่เคยเขียนเกี่ยวกับการแฮ็กเกม Gamecube ก็น่าจะอ่านสนุก: 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
หลายครั้งก็แค่มีใครสักคนลองขุดโค้ดดูเป็นครั้งแรกเท่านั้น
โดยเฉพาะหลังจากที่ Ghidra ทำให้การ decompile บนสถาปัตยกรรมที่ไม่ค่อยเป็นที่นิยมทำได้ง่ายขึ้นมาก
ลองทำดูก็น่าจะดี มีผลไม้ห้อยต่ำอยู่ค่อนข้างเยอะ
เมื่อก่อนเคยส่งตัวอย่างคล้าย ๆ กันไปหนึ่งอันด้วย
โชคดีที่ดูเหมือนจะไม่ได้มีการ obfuscation แบบ “chain XOR ที่เก็บไว้ใน bitmap resource ของรูปแบบไฟล์ปฏิบัติการที่รองรับไม่ดี” เหมือนอีสเตอร์เอ้กของระบบปฏิบัติการอื่น ๆ: https://x.com/mswin_bat/status/1504788425525719043
หลายคนมักยกย่อง Steve Jobs จนแทบเป็นเทพ แต่ก็ไม่แน่ใจเหมือนกัน
โดยส่วนตัวแล้ว ผมก็ค่อนข้างชอบช่วงที่ Mac ระหกระเหินอยู่ในถิ่นทุรกันดาร
พออ่านอะไรแบบนี้แล้ว รู้สึกว่าแม้โดยรวมการกลับมาของ Jobs จะเป็นผลดี แต่ Apple ก็สูญเสียอะไรบางอย่างในวัฒนธรรมและอัตลักษณ์ไป
Sculley, Spindler และ Amelio ไม่ใช่ผู้นำที่ดีที่สุด และ Apple ก็สั่นคลอนหนักจากความล้มเหลวอย่าง Pink/Taligent, Copland, PowerBook 5300 และฮาร์ดแวร์ตระกูล Performa 5200/6200/5300/6300
โดยเฉพาะปี 1995 เป็นปีแห่งหายนะของ Apple
ถึงอย่างนั้น ช่วงนี้ก็มีหลายอย่างที่ยอดเยี่ยม
Jean Louis Gassée ต่อสู้เพื่อ Mac ที่ขยายได้ อิทธิพลของเขานำไปสู่ Macintosh II และเริ่มสายตระกูล Mac แบบขยายได้อันยาวนานที่ไม่ขาดตอนจนกระทั่ง Mac Pro “ถังขยะ” ปี 2013 ออกมา
System 7 อาจไม่ใช่ระบบปฏิบัติการที่เสถียรที่สุด แต่ UI นั้นยอดเยี่ยม
Don Norman และ Bruce Tognazzini ผลักดันหลักการและแนวทาง UI/UX ที่แข็งแรง และ HyperCard ก็เป็นผลผลิตของยุคนี้
Advanced Technology Group ของ Apple ซึ่งมี Larry Tesler, Alan Kay และคนอื่น ๆ อยู่ด้วย ได้ทำโปรเจกต์ที่น่าสนใจอย่างภาษาโปรแกรม Dylan และสภาพแวดล้อม SK8
OpenDoc ก็เป็นความพยายามที่น่าสนใจในการสร้างแพลตฟอร์มซอฟต์แวร์แบบคอมโพเนนต์
Classic Mac OS ยังมีความรู้สึกอบอุ่นและขี้เล่น ซึ่งหายไปเมื่อย้ายไป Mac OS X
แน่นอนว่าผมขอบคุณ Mac OS X มาก
ผมชอบทั้ง Apple ในยุค “ไร้กษัตริย์” และ Apple ช่วงปี 1997–2011 หลัง Jobs กลับมา แต่ไม่ค่อยชอบ Apple ของ Tim Cook เท่าไร
ตั้งแต่นั้นรู้สึกว่า Apple เปลี่ยนไปจากรากเหง้าอย่างมาก
Apple ประสบความสำเร็จทางการเงินมากที่สุดในประวัติศาสตร์ แต่ Mac ไม่ได้ให้ความรู้สึกเหมือนในยุค 1990 หรือ 2000 อีกต่อไป
ตอนนี้ Apple เปลี่ยนจากบริษัท Mac ไปเป็นบริษัท iPhone แล้ว
เรื่องนี้คงเหมาะสุด ๆ สำหรับ Stump the Experts แต่น่าเสียดายที่ทำอะไรไม่ได้
ผมหลงใหลเสมอกับการที่ทีมในยุคแรกของคอมพิวติ้งมีขนาดเล็กมาก และอยากให้เรากลับไปสู่ยุคนั้นได้ somehow