Câu chuyện phát hiện một Easter egg 27 năm tuổi trong ROM Power Mac G3
(downtowndougbrown.com)- ROM của Power Macintosh G3 màu beige giai đoạn 1997–1999 có chứa một ảnh nhóm bị ẩn, nhưng cách hiển thị nó trên thiết bị thật chưa được biết đến cho tới năm 2025
- Manh mối quyết định đến từ các chuỗi Pascal như
.Edisk,secret ROM image,The Teamở cuốinittresource ID 43 “Native 4.3”; resource này là mã SCSI Manager 4.3 native cho PowerPC - Khi reverse engineering file thực thi PEF bằng
Ghidra, người ta xác nhận luồng xử lý ghi JPEG trongHPOEresource ID 1 thành fileThe Teamkhi tên volume RAM disk làsecret ROM image - Cách kích hoạt là bật RAM Disk rồi khởi động lại, sau đó khi xóa RAM Disk, nhập chính xác
secret ROM imagevào hộp thoại định dạng; cách này đã được tái hiện trên emulator và máy desktop G3 thật - Theo nhiều thử nghiệm, phương pháp này có vẻ hoạt động đến Mac OS 9.0.4, và 9.1 có thể là phiên bản đầu tiên không còn hoạt động nữa
Ảnh nhóm bị ẩn còn nằm trong ROM
- Trong quá trình xem xét ROM của Power Macintosh G3, một cách kích hoạt Easter egg chưa từng được ghi chép đã lộ diện
- ROM được nói tới dùng trong các mẫu G3 màu beige dạng desktop, minitower và all-in-one ra mắt từ năm 1997 đến 1999
- Việc khám phá ROM sử dụng Hex Fiend và ROM Fiend, template Mac ROM của Eric Harmon
- Resource loại
HPOEtrong ROM chứa ảnh JPEG của nhiều người, có vẻ là những người đã làm việc trên mẫu Mac này - Bản thân sự tồn tại của bức ảnh không phải phát hiện mới; Pierre Dandumont đã đề cập từ năm 2014
- Khi đó vẫn chưa xác định được cách hiển thị ảnh này trên thiết bị thật
- Một số máy Mac cũ hơn có tổ hợp phím bí mật để hiển thị ảnh tương tự, nhưng cách hiển thị ảnh trong ROM G3 vẫn là điều bí ẩn
Resource SCSI Manager 4.3 trở thành manh mối
- Trong quá trình khám phá thêm, người ta tìm thấy
nittresource ID 43, tên “Native 4.3” - Nhờ nghiên cứu Pippin của Keith Kaisershot, có thể nhanh chóng xác định resource này là mã SCSI Manager 4.3 native cho PowerPC
- Ở cuối resource có các chuỗi Pascal có thể liên quan tới Easter egg
.Edisksecret ROM imageThe Team
- Đặc biệt,
secret ROM imagerất có khả năng liên quan tới bức ảnh ẩn đã phát hiện trước đó - Kết quả tìm kiếm Internet cho thấy cùng cụm từ này cũng từng được dùng trong Easter egg của các máy PowerPC Mac đời trước
- Trên các máy trước đó, nhập cụm từ này, chọn nó rồi kéo ra desktop thì ảnh sẽ xuất hiện
- Tuy nhiên, cách tương tự không hoạt động trên G3
Luồng mã thực tế được xác nhận bằng Ghidra
- Khi trích xuất toàn bộ
nittresource ID 43 thành file, nó được nhận diện làPowerPC PEF executable - 12 byte đầu của file là
Joy!peffpwpc, và Ghidra tải nó trực tiếp dưới dạng file PEF - Ở lần phân tích đầu, tham chiếu tới chuỗi
secret ROM imagekhông được nhận đúng, nhưng sau khi chạy Auto Analyze thêm một lần nữa, các tham chiếu tới những chuỗi đáng chú ý được phát hiện thêm - Hàm đó đang làm các thao tác liên quan tới driver
.EDisk, tức driver RAM disk - Các hành vi cốt lõi từ kết quả decompile như sau
- Tìm driver tên
.Edisk - Tìm disk gắn với driver đó, tức RAM disk
- Tìm volume gắn với disk đó
- Nếu tên volume là
secret ROM image:- Tải
HPOEresource ID 1 để lấy dữ liệu ảnh JPEG - Tạo file
The Teamcó creator làttxt, type làJPEG - Mở file, ghi dữ liệu JPEG rồi đóng file
- Sau đó thực hiện thêm một số thao tác liên quan tới driver control entry
- Tải
- Tìm driver tên
- Hàm này chỉ được gọi từ một nơi khác, và điểm gọi kiểm tra xem đối số đầu tiên có phải
0x3DA(986 ở hệ thập phân) hay không
Cách kích hoạt bằng định dạng RAM Disk
- Khi chưa có sẵn một máy beige G3 thật, phát hiện này được chia sẻ lên kênh
#mac68ktrên Libera, và^alexđã tìm ra qua thử nghiệm Infinite Mac rằng cần thực hiện quy trình xóa RAM Disk - Sau đó, cùng phương pháp này cũng hoạt động trên phần cứng desktop G3 thật
- Trên trình duyệt, có thể tái hiện bằng cách chạy máy beige G3 giả lập cài Mac OS 8.1
- Sử dụng DingusPPC
- Có điểm đặc biệt là lúc khởi động sẽ xuất hiện lỗi alias resolution failed; khi lỗi hiện ra, chỉ cần bấm Stop
- Các bước tái hiện như sau
- Bật RAM Disk trong Memory control panel
- Chọn Restart từ menu Special
- Khi desktop hiện lại, chọn biểu tượng RAM Disk
- Chọn Erase Disk từ menu Special
- Nhập chính xác
secret ROM imagevào hộp thoại định dạng - Nhấp Erase
- Khi mở RAM Disk vừa được định dạng, một file tên
The Teamsẽ xuất hiện - Nhấp đúp file đó sẽ mở SimpleText
Một trong những Easter egg cuối cùng của trục còn tồn tại tới Mac OS 9.0.4
- Theo thử nghiệm của nhiều người và thử nghiệm trực tiếp, cách này có vẻ hoạt động đến Mac OS 9.0.4
- Mac OS 9.1 có thể là phiên bản đầu tiên khiến phương pháp này không còn hoạt động
- Trong phạm vi có thể xác nhận đến nay, bí mật này dường như là một phát hiện mới
- Việc có ảnh trong ROM thì đã được biết đến
- Nhưng cách kích hoạt thực tế chưa từng được ghi chép
- Easter egg này có thể là một trong những Easter egg cuối cùng thuộc dòng này được đưa vào máy Mac trước các thông tin rằng Steve Jobs đã cấm Easter egg sau khi quay lại Apple năm 1997
- Nếu
^alexkhông tìm ra điều kiện kích hoạt là phải xóa RAM Disk, có lẽ sẽ cần tiếp tục lần theo phần mã còn lại
1 bình luận
Các ý kiến trên Hacker News
Những easter egg như thế này nhìn chung mang đậm không khí của thời kỳ đầu máy tính để bàn
Đó là một yếu tố rất con người, kết nối ta với sự thật rằng sản phẩm được tạo ra bởi những con người có khuôn mặt và tên tuổi phía sau
Khi ấy chúng là những dự án do các nerd hardcore làm bằng đam mê, nhưng ngày nay bầu không khí lại nghiêng về việc không để người dùng nhìn thấy gì phía sau lớp trừu tượng của sản phẩm
Những người phụ trách sản phẩm muốn kiểm soát toàn bộ hình ảnh của sản phẩm, và có vẻ họ cho rằng phi nhân hóa sẽ an toàn hơn nếu tính đến chuyện danh sách quá lớn hoặc có ai đó trong đó về sau có thể gây vấn đề
Bây giờ ta có thể tưởng tượng một easter egg thú vị trên iPhone, mỗi lần kích hoạt sẽ ngẫu nhiên hiển thị vài người đã tham gia phát triển; cá nhân tôi sẽ thích, nhưng có lẽ nó sẽ trái với gu tinh tế của những người phụ trách sản phẩm
Trong phát triển theo hạn chót, sẽ có tình huống một phần nhóm phải chờ thành viên nhóm khác hoàn tất việc gì đó để vượt qua một cột mốc, và cứ lục lọi backlog mãi cũng có giới hạn
Khi sự nhàm chán gặp lý lẽ “lén nhét một thứ nhỏ vào chắc cũng không ảnh hưởng roadmap đâu”, động cơ và cơ hội sẽ nhiều hơn hẳn
Đặc biệt là giờ phần mềm đã phức tạp và đồ sộ đến mức này, và tôi cũng không biết trong công ty còn có thời gian để làm thứ hài hước không
Lúc nào cũng có cảm giác đang làm việc ở mức 120%
Phần mềm ngày xưa do một nhóm nhỏ tạo ra, còn bây giờ có hàng nghìn người trong một tổ chức tham gia
Dù tốt hay xấu thì thực tế là vậy, và trong các dự án phần mềm lớn ngày nay, một easter egg chỉ nhấn mạnh vài người không còn hợp lý lắm
Khá hay, và cho thấy đằng sau các công ty có những con người thật
Một vài người giàu có đôi khi nói “tôi đã làm ra nó”, rồi chiếm công lao của những người nhỏ bé
Trong khi đó, chính những người nhỏ bé thật sự lại để lại dấu vết trong lịch sử rằng “không, chính chúng tôi mới là những người đã đặt cả tâm hồn vào để làm được điều này”
Tất nhiên Steve Jobs có lẽ sẽ cấm chuyện đó
Về chủ đề này, ông ấy thậm chí gần như là người khởi đầu xu hướng đó: https://www.folklore.org/Signing_Party.html
Vì vậy không thể nói “tất nhiên” như vậy được, và Microsoft cũng đã có chính sách cấm easter egg từ đầu thập niên 2000, nên đây cũng không phải vấn đề riêng của Jobs
Khả năng hợp lý hơn là một trong những “con người thật” đó đã xóa nó trong lúc dọn dẹp
Jobs thường công khai nói về những con người tuyệt vời làm việc ở Apple, và cũng từng nói với Walt Mossberg về tầm quan trọng của việc xây dựng một đội ngũ xuất sắc và nuôi dưỡng sáng tạo
“Tiền đó chính là để trả cho việc đó!”
Tôi từng làm việc với một người đã thiết kế ASIC và bo mạch tại Apple từ thập niên 80 đến giữa thập niên 90
Có lần anh ấy nổi giận vì đội phần cứng đã đổ mồ hôi công sức vào thiết kế và debug hệ thống, vậy mà phía phần mềm lại dùng khoảng 50KB ảnh ROM để ca ngợi đội đã thiết kế chiếc máy tính, nhưng hoàn toàn bỏ quên đội phần cứng
Tôi nhớ đến thông điệp “We made the Amiga, they f----d it up!”
https://arstechnica.com/gadgets/2007/12/amiga-history-part-5...
Tôi thật sự nhớ easter egg
Ước gì chúng quay trở lại
Ngày nay có lẽ chỉ còn thấy trong các dự án nhỏ, nhưng tôi cũng muốn thấy chúng trong những công việc quy mô lớn hơn
Hồi nhỏ, khi phát hiện hoặc nghe nói có easter egg trong một sản phẩm, tôi đã dùng sản phẩm đó nhiều hơn chỉ để tìm cho ra nó
Thật tiếc khi những niềm vui nhỏ bé được giấu kín không còn phổ biến như trước, và thật buồn khi ngay cả các phiên bản Android mới nhất cũng chỉ có “easter egg” nhàm chán, bắt người dùng mở tính năng nhà phát triển rồi chỉ nhận được tương tác nghèo nàn đến mức thất vọng
https://raw.githubusercontent.com/tirrenotechnologies/tirren...
Trước đây từng có người chia sẻ một easter egg trên iPad, viết một đoạn mã nhỏ trong ứng dụng playground để gọi ra thứ gì đó giống logo tiếp theo từ ROM
Khi đó tôi đã tái hiện được, nhưng về sau không tìm lại được tài liệu liên quan nữa
Đại khái là khoảng 6 năm trước
Ấn tượng
Thật thú vị là phải mất lâu đến vậy mới có người tìm ra cơ chế kích hoạt easter egg này
Dịch ngược thật khó
Giờ thì tôi tò mò không biết có thể học dịch ngược ở đâu
Không biết nên bắt đầu từ đâu, có hướng dẫn trực tuyến hay sách nào được khuyên đọc không
Kết quả thử nghiệm hiện ra ngay trước mắt, thiết bị cũng đơn giản
Tuy nhiên “API” phần cứng có thể khá thiếu trực quan với lập trình viên hiện đại
Cũng đã có rất nhiều công cụ phục vụ hack và dịch ngược, nên cứ nạp trò NES bạn thích vào Mesen, mở nesdev.org trên trình duyệt rồi vọc các công cụ debug là được
Nếu trò bạn đang xem đã từng được ai đó dịch ngược, bạn cũng có thể tìm được thông tin hữu ích tại https://datacrystal.tcrf.net
Dịch ngược phần mềm hiện đại hơn thì khó nhằn
Hai bài tôi từng viết về hack game Gamecube cũng có thể thú vị: https://www.smokingonabike.com/2021/01/17/hacking-super-monk..., https://www.smokingonabike.com/2021/02/28/hacking-super-monk...
Thảo luận HN liên quan: https://news.ycombinator.com/item?id=26315368
Trong nhiều trường hợp, chỉ đơn giản là lần đầu tiên có người thử đào vào mã mà thôi
Đặc biệt là sau khi Ghidra khiến việc decompile dễ hơn nhiều ngay cả trên các kiến trúc ít phổ biến
Nên thử một lần, còn khá nhiều quả thấp dễ hái
Trước đây tôi cũng từng gửi một trường hợp tương tự
May là, khác với các easter egg của hệ điều hành khác, có vẻ nó không bị làm rối kiểu “chuỗi XOR được lưu trong tài nguyên bitmap của một định dạng file thực thi được hỗ trợ kém”: https://x.com/mswin_bat/status/1504788425525719043
Người ta thường thần thánh hóa Steve Jobs quá mức, nhưng tôi không chắc lắm
Cá nhân tôi cũng khá thích thời kỳ Mac lang thang trong hoang địa
Đọc những thứ như thế này khiến tôi có cảm giác rằng, dù xét tổng thể có thể là có lợi, sự trở lại của Jobs đã khiến văn hóa và bản sắc của Apple mất đi điều gì đó
Sculley, Spindler, Amelio không phải những lãnh đạo xuất sắc nhất, và Apple đã lao đao nặng nề vì Pink/Taligent, Copland, PowerBook 5300, cùng những thất bại phần cứng như các dòng Performa 5200/6200/5300/6300
Đặc biệt năm 1995 là một năm thảm họa với Apple
Dù vậy, giai đoạn này vẫn có nhiều điểm tuyệt vời
Jean Louis Gassée đã đấu tranh cho những chiếc Mac có thể mở rộng, và ảnh hưởng của ông dẫn tới Macintosh II, mở đầu cho một dòng dõi dài các Mac dạng mở rộng không bị gián đoạn cho tới khi Mac Pro 2013 “thùng rác” ra đời
System 7 không phải hệ điều hành ổn định nhất, nhưng UI thì tuyệt vời
Don Norman và Bruce Tognazzini đã thúc đẩy các nguyên tắc và guideline UI/UX vững chắc, và HyperCard cũng là sản phẩm của thời kỳ này
Advanced Technology Group của Apple, nơi có Larry Tesler, Alan Kay và những người khác, đã thực hiện các dự án thú vị như ngôn ngữ lập trình Dylan và môi trường SK8
OpenDoc cũng là một nỗ lực thú vị nhằm tạo ra một nền tảng phần mềm dựa trên component
Classic Mac OS còn có cảm giác ấm cúng và tinh nghịch, điều đã biến mất khi chuyển sang Mac OS X
Tất nhiên tôi rất biết ơn Mac OS X
Tôi thích cả Apple “thời kỳ nhiếp chính” lẫn Apple giai đoạn 1997–2011 sau khi Jobs trở lại, nhưng không thích Apple của Tim Cook cho lắm
Từ lúc đó tôi cảm thấy Apple đã khác xa cội rễ của mình
Về tài chính, Apple thành công nhất trong lịch sử, nhưng Mac không còn mang cảm giác của thập niên 1990 hay 2000 nữa
Apple giờ đã từ một công ty Mac trở thành một công ty iPhone
Cái này hẳn sẽ là chất liệu hoàn hảo cho Stump the Experts, nhưng đành chịu thôi
Tôi luôn thấy mê hoặc trước việc các đội ngũ thời kỳ điện toán sơ khai nhỏ đến mức nào, và ước gì bằng cách nào đó có thể quay lại thời ấy