1 คะแนน โดย GN⁺ 2025-06-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แนะนำประสบการณ์ที่บังเอิญค้นพบ อีสเตอร์เอ็กที่มีเอกลักษณ์ ระหว่างการวิเคราะห์ภายใน Power Mac G3 ROM
  • เดิมทราบกันอยู่แล้วว่ามีการซ่อนภาพถ่ายของนักพัฒนาไว้ในรีซอร์สชื่อ HPOE แต่ตลอดมาวิธีแสดงผลจริงยังคงเป็นปริศนา
  • มีข้อความ "secret ROM image" ปรากฏในโค้ดของ SCSI Manager และกลายเป็นเบาะแสสำคัญ
  • เมื่อฟอร์แมต RAM disk ด้วยชื่อที่กำหนด จะมีไฟล์ชื่อ "The Team" ถูกสร้างขึ้น และไฟล์นี้จะ เผยภาพที่ซ่อนไว้
  • วิธีนี้ทำงานได้ถึง Mac OS 9.0.4 และการค้นพบครั้งนี้ดูเหมือนจะเป็น การเปิดเผยอีสเตอร์เอ็กนี้ต่อสาธารณะครั้งแรก

เบื้องหลังการค้นพบอีสเตอร์เอ็กใน Power Mac G3 ROM

  • ระหว่างการ วิเคราะห์ ROM ของ Power Macintosh G3 เมื่อไม่นานมานี้ ได้ค้นพบ อีสเตอร์เอ็ก ที่ไม่เคยมีการบันทึกไว้อย่างเป็นทางการมาก่อน
  • การวิเคราะห์ใช้ Hex Fiend และ ROM Fiend ซึ่งเป็น Mac ROM template ของ Eric Harmon
  • ROM นี้ตรงกับรุ่น G3 แบบ beige desktop, minitower และ all-in-one ที่ใช้งานในช่วงปี 1997 ถึง 1999
  • ผู้พัฒนาเองก็ทึ่งที่ G3 มีอายุมากกว่า 27 ปีแล้ว

สรุปสิ่งที่น่าสนใจที่พบใน ROM

  • สิ่งแรกที่สะดุดตาคือภาพ JPEG ใน รีซอร์สชนิด HPOE ซึ่งคาดว่าเป็นภาพหมู่ของผู้ที่มีส่วนร่วมพัฒนารุ่นนี้ในเวลานั้น
  • ภาพนี้เคยถูกกล่าวถึงมาก่อน แต่ยังไม่เคยมีการเปิดเผยวิธีแสดงผลจริง
  • อย่างที่สองคือพบ Pascal string ที่น่าสนใจใน nitt resource ID 43 (Native 4.3) ได้แก่ ".Edisk", "secret ROM image", "The Team"
  • ตอนแรกคาดว่า "secret ROM image" อาจเกี่ยวข้องกับอีสเตอร์เอ็กของ DOS Mac แต่วิธีเดิมนั้นใช้กับ G3 ไม่ได้

ขั้นตอนการวิเคราะห์โค้ดและการหาวิธี

  • จึงตัดสินใจทำการ disassemble โค้ดและวิเคราะห์ไฟล์ nitt43 ทั้งหมดด้วย Ghidra
  • แม้จะไม่คุ้นเคยกับ PowerPC assembly แต่ด้วย decompiler ของ Ghidra จึงสามารถแปลงให้อ่านได้ง่ายขึ้น
  • พบว่าฟังก์ชันหลักมีการโต้ตอบกับไดรเวอร์ .EDisk (RAM disk)
  • เมื่อระบบตรวจพบโวลุ่มชื่อ "secret ROM image" (= RAM disk) ก็จะเขียนข้อมูล JPEG ที่อยู่ใน HPOE resource ID 1 ลงเป็นไฟล์ชื่อ "The Team"

วิธีเรียกใช้อีสเตอร์เอ็กจริง

  • จากผลการวิเคราะห์ หากฟอร์แมต RAM disk ด้วยชื่อ "secret ROM image" อีสเตอร์เอ็กจะทำงาน
  • สามารถยืนยันวิธีนี้ได้ในอีมูเลเตอร์ออนไลน์อย่างโครงการ Infinite Mac
  • ลำดับขั้นตอนมีดังนี้:
    • เปิดใช้งาน RAM disk ในแผงควบคุม Memory
    • เลือก Restart จากเมนู Special
    • หลังกลับสู่เดสก์ท็อป ให้เลือกไอคอน RAM disk
    • เลือก Erase Disk จากเมนู Special
    • พิมพ์ชื่อเป็น "secret ROM image" ให้ตรงทุกตัวอักษร แล้วคลิก Erase
    • เมื่อเปิด RAM disk ที่ฟอร์แมตแล้ว จะพบว่าไฟล์ "The Team" ถูกสร้างขึ้น
  • สามารถเปิดไฟล์นี้ด้วย SimpleText เป็นต้น เพื่อดูภาพภายใน

ความหมายของอีสเตอร์เอ็กและบทสรุป

  • มีการทดสอบแล้วว่าวิธีนี้ยังทำงานได้ตามปกติถึงเวอร์ชัน Mac OS 9.0.4
  • ก่อนหน้านี้มีเพียงข้อมูลว่าภาพดังกล่าวอยู่ใน ROM แต่ วิธีเรียกใช้งานจริง เพิ่งถูกเปิดเผยอย่างสมบูรณ์เป็นครั้งแรกในครั้งนี้
  • มีความเป็นไปได้สูงว่านี่คือหนึ่งในอีสเตอร์เอ็กชุดท้าย ๆ ที่ยังหลงเหลืออยู่ หลังจาก Steve Jobs กลับสู่ Apple ในปี 1997 และสั่งห้ามอย่างเป็นทางการ
  • ด้วยการทดสอบหลายครั้งและเบาะแสต่าง ๆ ฟังก์ชันที่ซ่อนอยู่นี้จึงถูกเปิดเผยสู่สาธารณะ ซึ่งมีความหมายอย่างมากทั้งในแง่ของ การวิเคราะห์ฮาร์ดแวร์และซอฟต์แวร์ Mac รุ่นเก่า และ การขุดค้นประวัติศาสตร์เทคโนโลยี

บทสรุป

  • นี่คือตัวอย่างของการเผยให้เห็น ภาพความทรงจำอย่างไม่เป็นทางการของทีมพัฒนา ที่หลับใหลอยู่มานาน 27 ปี ด้วยวิธีง่าย ๆ แค่ฟอร์แมต RAM disk พร้อมเปลี่ยนชื่อ
  • เป็นกรณีศึกษาที่น่าสนใจสำหรับผู้อ่านที่สนใจเทคนิคอีสเตอร์เอ็ก วัฒนธรรมการพัฒนา Apple และร่องรอยที่ซ่อนอยู่ของนักพัฒนา

1 ความคิดเห็น

 
GN⁺ 2025-06-25
ความคิดเห็นจาก Hacker News
  • รู้สึกว่าอีสเตอร์เอ็กแบบนี้ให้บรรยากาศยุคแรกเริ่มของเดสก์ท็อปพีซีได้ชัดมาก ทำให้สัมผัสได้ขึ้นมาจริง ๆ ว่านี่คือซอฟต์แวร์ที่มนุษย์สร้างขึ้น และยังชวนให้นึกถึงวันเก่า ๆ ที่ผลงานจำนวนมากถูกสร้างโดยนักพัฒนาตัวเล็ก ๆ ที่มีแพสชันไม่กี่คน ทุกวันนี้กลับรู้สึกว่ามี Product People (ฝ่ายวางแผน/บริหารจัดการ) ที่พยายามควบคุมภาพลักษณ์ของผลิตภัณฑ์อย่างสมบูรณ์ จนบางทีก็ดูจงใจไร้ความเป็นมนุษย์จนน่าขนลุก ถ้าลองจินตนาการว่าทุกครั้งที่เปิดใช้อีสเตอร์เอ็กใน iPhone ยุคนี้แล้วมีรูปหรือชื่อของบางคนที่มีส่วนร่วมในการพัฒนาปรากฏขึ้นแบบสุ่ม ก็คงสนุกดี แต่ก็คงไม่ผ่านมาตรฐานของ Product People แน่ ๆ
    • อดสงสัยไม่ได้ว่าสมัยก่อนก่อนจะมี Agile อีสเตอร์เอ็กแบบนี้น่าจะมีมากกว่านี้หรือเปล่า พอทำงานแบบอิง deadline มักมีช่วงที่คนบางส่วนของทีมต้องรออยู่บ่อย ๆ และ backlog ก็มีขีดจำกัด เลยเกิดช่องว่างเล็ก ๆ ที่เป็นทั้ง "แรงจูงใจ" และ "โอกาส" ให้อะไรอย่างอีสเตอร์เอ็กถูกใส่เข้ามาได้บ่อยขึ้น
    • รู้สึกว่าการวิจารณ์ Product People นั้นแรงเกินไป สมัยก่อนมีคนทำกันไม่กี่คน แต่ทุกวันนี้หนึ่งโปรเจ็กต์มีคนเกี่ยวข้องกันเป็นพัน ๆ คน อีสเตอร์เอ็กที่เผยชื่อของนักพัฒนาเพียงบางคนในซอฟต์แวร์ขนาดใหญ่ก็เลยแทบไม่มีความหมาย
  • เคยทำงานกับเพื่อนร่วมงานคนหนึ่งที่เมื่อก่อนออกแบบ ASIC และบอร์ดที่ Apple เขาเคยบ่นแบบเสียดายว่า ต่อให้ทุ่มเทกับการพัฒนาฮาร์ดแวร์ของระบบและดีบักอย่างหนักแค่ไหน ทีมซอฟต์แวร์ก็ยังเอาพื้นที่ ROM ไปเปลืองกับภาพแนะนำทีมเพื่อยกย่องกันเอง ขณะที่ทีมฮาร์ดแวร์กลับถูกมองข้ามไปหมด
  • คิดว่าการแสดงให้เห็นว่าหลังบริษัทมีคนจริง ๆ อยู่เป็นเรื่องที่ดี พวกมหาเศรษฐีมักชอบอ้างว่า “ฉันสร้างสิ่งนี้ขึ้นมา” เพื่อรับเอาความดีความชอบไปเอง แต่คนธรรมดาที่ลงมือทำงานจริงกลับทิ้งร่องรอยไว้ตรงมุมหนึ่งของประวัติศาสตร์ว่า ‘จิตวิญญาณของพวกเราอยู่ในนี้’ แน่นอนว่า Steve Jobs อาจจะสั่งห้ามอีสเตอร์เอ็กแบบนี้ก็ได้
    • ส่วนตัวไม่ได้เป็นแฟน Jobs แต่ก็คิดว่าไม่ยุติธรรมเหมือนกันถ้าจะมองเขาเป็นตัวร้ายแบบง่าย ๆ ในเรื่องนี้กลับมีประวัติศาสตร์ว่าบางครั้ง Jobs เป็นคนผลักดันด้วยซ้ำ ดู Signing Party ของ Apple และ Microsoft เองก็มีนโยบาย “no easter eggs” มาตั้งแต่ต้นยุค 2000 แล้ว จึงไม่ใช่อะไรที่เป็นลักษณะเฉพาะของ Jobs อย่างเดียว
    • ตอนที่ Jobs กลับมา Apple ในช่วงวิกฤต ไม่น่าจะเป็นไปได้ที่เขาจะรู้ถึงขั้นมี obscure ROM image ซ่อนอยู่ตรงไหนบ้าง ดูจะเหมือนวิศวกรธรรมดาคนหนึ่งเก็บกวาดแล้วลบทิ้งมากกว่า Jobs เองกลับเป็นคนที่มักชื่นชมทีมเก่ง ๆ และความคิดสร้างสรรค์ของ Apple อยู่เสมอ และก็พูดถึงความสำคัญของการสร้างทีมที่ดีหลายครั้งด้วย
    • แม้จะมีความเชื่อว่ากำไรสุดท้ายแล้วก็คือการขโมยแรงงานที่ไม่ได้จ่ายเป็นค่าจ้าง แต่พอพูดถึงเงินเดือนระดับ Meta ก็ทำให้นึกถึงประโยคดังจาก Mad Men ว่าเวลาคนอยากให้ยอมรับผลงานส่วนตัว ก็จะมีคนพูดว่า “นั่นแหละคือเหตุผลที่เขาจ่ายเงินให้คุณ”
  • ทำให้นึกถึงข้อความดังที่ทีมสร้างคอมพิวเตอร์ Amiga ทิ้งไว้ว่า “We made the Amiga, they f----d it up!” ลิงก์ที่เกี่ยวข้อง
  • ทีมขนาดเล็กในยุคคอมพิวติ้งก่อน ๆ ให้ความรู้สึกน่าสนใจเสมอ หวังว่าสักวันหนึ่งเราจะกลับไปเป็นแบบนั้นได้อีก
  • จำได้ว่าตอนยุค 90 เคยนั่งอ่าน MacWorld ในห้องสมุด แล้วเจอทริกที่ใช้การคลิกไม่กี่ครั้งกับการกดปุ่มบางอย่างเพื่อปลดล็อกอะไรสักอย่างที่เกี่ยวกับโปรเซสเซอร์ จำรายละเอียดไม่ได้แล้วว่าคือฟังก์ชันอะไรแน่ แต่เกี่ยวข้องกับ Apple IIci 33mhz processor
    • สำหรับผม ความทรงจำที่ดีที่สุดคือใน System 7.5 ถ้าลาก text clipping ที่เขียนว่า “secret about box” ไปไว้บนเดสก์ท็อป มันจะเปิดเกม breakout ที่รายชื่อสมาชิกทีม dev แสดงออกมาเป็น ‘ก้อนอิฐ’ เป็นช่วงเวลาที่สนุกมากจริง ๆ
  • เคยเจออีสเตอร์เอ็กที่ใช้โค้ดนิดหน่อยในแอป playground บน iPad เพื่อโหลดโลโก้ถัดไปจาก ROM ตอนนั้นเคยลองทำตาม แต่หลังจากนั้นก็หา reference อื่นไม่เจออีกเลย เรื่องนี้ประมาณ 6 ปีก่อน
  • คิดถึงอีสเตอร์เอ็กมาก อยากให้มันกลับมาอีกครั้ง
    • เห็นด้วย ทุกวันนี้ยังพอมีอยู่บ้างในโปรเจ็กต์เล็ก ๆ แต่อยากให้กลับมาในโปรเจ็กต์ใหญ่ด้วย ตอนเด็ก ๆ แค่ได้ยินข่าวลือว่ามีอีสเตอร์เอ็กก็ทำให้อยากใช้ผลิตภัณฑ์นั้นนานขึ้นแล้ว ทุกวันนี้แม้แต่ Android ก็ยังมีอีสเตอร์เอ็กที่จืดลงไปมาก ปลดล็อกได้จาก developer mode แล้วก็ยังไม่ค่อยรู้สึกอะไร น่าเสียดายมาก
    • ในโปรเจ็กต์ของทีมเรา มีอีสเตอร์เอ็กเล็ก ๆ อยู่ใน FILE_ID.DIZ ลิงก์
  • ประทับใจที่กลไกอีสเตอร์เอ็กแบบนี้ไม่ถูกใครค้นพบมาเป็นเวลานาน ทำให้รู้สึกว่าการ reverse engineering ยากจริง ๆ ถ้าจะเริ่มต้นควรเริ่มจากตรงไหนดี ถ้ามีบทเรียนออนไลน์หรือหนังสือแนะนำก็อยากขอคำแนะนำ
    • แนะนำว่าวิดีโอเกม โดยเฉพาะเครื่องคอนโซลเก่าอย่าง NES เป็นจุดเริ่มต้นที่ดี เพราะลองแล้วจะเห็นผลลัพธ์ได้ทันที ทำให้น่าสนใจ และก็มีเครื่องมือที่เกี่ยวข้องเยอะ เช่นลองรันเกม NES บน Mesen พร้อมเครื่องมือดีบัก แล้วไปดู nesdev.org ถ้าเป็นเกมที่มีการ reverse engineering ไว้แล้ว ก็หาข้อมูลเพิ่มได้จาก Data Crystal ส่วนซอฟต์แวร์สมัยใหม่จะยากกว่า แต่เมื่อก่อนเคยเขียนเรื่องการแฮ็กเกม Gamecube ไว้เหมือนกัน Hacking Super Monkey Ball ตอนที่ 1 ตอนที่ 2, decompilation with ghidra ดู HN discussion ได้ด้วย
  • เรื่องนี้ถ้าไปอยู่ใน Stump the Experts (เกมตอบคำถามเกี่ยวกับ Apple) คงเหมาะมาก เสียดาย