Power Mac G3 ROM’unda 27 yıllık bir Easter egg’in keşfedilme hikâyesi
(downtowndougbrown.com)- 1997~1999 yıllarına ait bej Power Macintosh G3 ROM’larında gizli bir ekip fotoğrafı bulunuyordu, ancak bunu gerçek cihazda görüntüleme yöntemi 2025’e kadar bilinmiyordu
- Belirleyici ipucu,
nittresource ID 43 “Native 4.3” sonundaki.Edisk,secret ROM image,The Teamgibi Pascal dizgilerinden geldi; bu kaynak PowerPC-native SCSI Manager 4.3 koduydu Ghidraile PEF çalıştırılabilir dosyası tersine mühendislik edilince, RAM disk birim adısecret ROM imageolduğundaHPOEresource ID 1’deki JPEG’inThe Teamdosyası olarak yazıldığı akış doğrulandı- Etkinleştirme yöntemi, RAM Disk’i açıp yeniden başlattıktan sonra RAM Disk’i silerken biçimlendirme iletişim kutusuna tam olarak
secret ROM imagegirmek; bu yöntem emülatörde ve gerçek masaüstü G3’te yeniden üretildi - Çeşitli testlere göre bu yöntem Mac OS 9.0.4’e kadar çalışıyor gibi görünüyor; 9.1’in artık çalışmadığı ilk sürüm olma ihtimali var
ROM içinde kalmış gizli ekip fotoğrafı
- Power Macintosh G3 ROM’u incelenirken, henüz belgelenmemiş bir Easter egg etkinleştirme yöntemi ortaya çıktı
- Hedef ROM, 1997~1999’da piyasaya çıkan bej masaüstü, mini tower ve all-in-one G3 modellerinde kullanılmıştı
- ROM keşfi için Hex Fiend ve Eric Harmon’un Mac ROM şablonu ROM Fiend kullanıldı
- ROM içindeki
HPOEtüründeki kaynakta, bu Mac modeli üzerinde çalışan kişiler olduğu düşünülen birkaç kişinin JPEG fotoğrafı yer alıyordu - Fotoğrafın varlığı başlı başına yeni bir keşif değil; Pierre Dandumont bunu 2014’te zaten ele almıştı
- O dönemde bu görüntüyü gerçek cihazda gösterme yöntemi doğrulanamamıştı
- Bazı daha eski Mac’lerde benzer fotoğrafları gösteren gizli tuş kombinasyonları vardı, ancak G3 ROM fotoğrafının nasıl gösterileceği gizem olarak kalmıştı
İpucu olan SCSI Manager 4.3 kaynağı
- Ek inceleme sırasında
nittresource ID 43, adı “Native 4.3” olan kaynak bulundu - Keith Kaisershot’un Pippin araştırması sayesinde bu kaynağın PowerPC-native SCSI Manager 4.3 kodu olduğu hızlıca anlaşılabildi
- Kaynağın son kısmında Easter egg ile bağlantılı olabilecek Pascal dizgileri bulunuyordu
.Edisksecret ROM imageThe Team
- Özellikle
secret ROM image, daha önce bulunan gizli fotoğrafla ilişkili olma ihtimali yüksek bir ifadeydi - İnternet aramaları sonucunda aynı ifadenin önceki PowerPC Mac’lerdeki bir Easter egg için de kullanıldığı görüldü
- Önceki cihazlarda bu ifade girilip seçildikten sonra masaüstüne sürüklenince fotoğraf görünüyordu
- Ancak aynı yöntem G3’te çalışmadı
Ghidra ile doğrulanan gerçek kod akışı
nittresource ID 43’ün tamamı dosya olarak çıkarıldığındaPowerPC PEF executableolarak tanındı- Dosyanın ilk 12 baytı
Joy!peffpwpcidi ve Ghidra bunu doğrudan PEF dosyası olarak yükledi - İlk analizde
secret ROM imagedizgisine yapılan başvurular doğru yakalanmadı, ancak Auto Analyze bir kez daha çalıştırılınca ilgilenilen dizgilerin ek başvuruları bulundu - İlgili fonksiyon
.EDisksürücüsüyle, yani RAM disk sürücüsüyle bağlantılı işler yapıyordu - Decompile sonucunun temel davranışı şöyleydi
.Ediskadlı sürücüyü bulur- Bu sürücüye bağlı diski, yani RAM disk’i bulur
- Bu diske bağlı birimi bulur
- Birim adı
secret ROM imageise:- JPEG görüntü verisini almak için
HPOEresource ID 1’i yükler - creator’ı
ttxt, type’ıJPEGolanThe Teamdosyasını oluşturur - Dosyayı açar, JPEG verisini yazar ve kapatır
- Ardından sürücü control entry’siyle ilgili ek işlemler yapar
- JPEG görüntü verisini almak için
- Bu fonksiyon yalnızca başka bir yerde çağrılıyordu ve çağrı noktası ilk argümanın
0x3DA(ondalık 986) olup olmadığını kontrol ediyordu
RAM Disk biçimlendirmesiyle etkinleştirme yöntemi
- Elde gerçek bir bej G3 yokken bulgular Libera’daki
#mac68kkanalında paylaşıldı;^alex, Infinite Mac deneyiyle RAM Disk’i silme sürecinin gerektiğini keşfetti - Daha sonra aynı yöntem masaüstü G3 gerçek donanımında da çalıştı
- Tarayıcıda Mac OS 8.1 yüklü emüle edilmiş bej G3 çalıştırılarak yeniden üretilebilir
- DingusPPC kullanır
- Başlangıçta alias çözümleme hatası çıkması gibi bir tuhaflık var; hata görünürse Stop’a basmak yeterli
- Yeniden üretme adımları şöyle
- Memory control panel’den RAM Disk’i etkinleştirin
- Special menüsünden Restart’ı seçin
- Masaüstü yeniden göründüğünde RAM Disk simgesini seçin
- Special menüsünden Erase Disk’i seçin
- Biçimlendirme iletişim kutusuna tam olarak
secret ROM imageyazın - Erase’e tıklayın
- Yeni biçimlendirilmiş RAM Disk’i açtığınızda
The Teamadlı bir dosya görünür - Bu dosyaya çift tıklayınca SimpleText açılır
Mac OS 9.0.4’e kadar kalmış son dönemin Easter egg’lerinden biri
- Birden fazla kişinin testleri ve doğrudan yapılan testlere göre bu yöntem Mac OS 9.0.4’e kadar çalışıyor gibi görünüyor
- Mac OS 9.1’in bu yöntemin artık çalışmadığı ilk sürüm olma ihtimali var
- Şu ana kadar doğrulanabilen kapsamda bu sırrın yeni keşfedilmiş olduğu görünüyor
- ROM içinde görüntü olduğu zaten biliniyordu
- Gerçekte nasıl etkinleştirileceği belgelenmemişti
- Bu Easter egg, Steve Jobs’ın 1997’de Apple’a dönüşünden sonra Easter egg’leri yasakladığına dair haberlerden önce Mac’lere eklenen son dönem Easter egg’lerden biri olabilir
^alex, RAM Disk’in silinmesi gerektiğini gösteren etkinleştirme koşulunu bulmamış olsaydı, muhtemelen kodun geri kalanını daha fazla izlemek gerekecekti
1 yorum
Hacker News yorumları
Bu tür easter egg’ler genel olarak erken dönem masaüstü PC çağının havasını güçlü biçimde hissettiriyor.
Ürünün arkasında yüzleri ve isimleri olan insanların bulunduğu gerçeğiyle bağ kurduran, son derece insani bir unsurdu.
O dönemde bunlar hardcore nerd’lerin tutkuyla yaptığı projelerdi; bugünse ürün soyutlama katmanının ötesini görmenizi engellemeye çalışan bir hava daha baskın.
Ürün sorumluları ürünün genel imajını kontrol etmek istiyor; liste çok büyük olduğunda ya da içlerinden birinin ileride sorun çıkarma ihtimali düşünüldüğünde, insan unsurunu silikleştirmenin daha güvenli olduğunu düşünüyor gibiler.
Bugün olsa, iPhone’da her etkinleştirdiğinizde geliştirmeye katılan birkaç kişiyi rastgele gösteren havalı bir easter egg hayal edebilirim; şahsen hoşuma giderdi ama ürün sorumlularının seçkin zevklerine ters düşerdi sanırım.
Teslim tarihi odaklı geliştirmede, ekibin bir kısmının bir kilometre taşını geçmek için diğer ekip üyelerinin bir şeyi bitirmesini beklediği durumlar olur; sürekli backlog karıştırmanın da bir sınırı var.
Can sıkıntısı ile “küçük bir şeyi gizlice eklesek de yol haritasını etkilemez” rasyonalizasyonu birleşince, hem motivasyon hem de fırsat çok daha fazla oluyor.
Özellikle yazılımın bugün bu kadar karmaşık ve büyük hale geldiği düşünülürse bu daha da geçerli; şirkette komik bir şey yapmaya zaman var mı onu da bilmiyorum.
Sürekli %120 çalışıyormuşum gibi hissediyorum.
Eski yazılımları az sayıda insan yapıyordu; bugünse tek bir organizasyon içinde binlerce kişi dahil oluyor.
İyi ya da kötü gerçek bu; günümüzün büyük yazılım projelerinde yalnızca birkaç kişiyi öne çıkaran easter egg’ler pek anlamlı değil.
Oldukça hoş; şirketlerin arkasında gerçek insanlar olduğunu gösteriyor.
Parası bol olan bazıları “bunu ben yaptım” diyerek küçük insanların başarılarını sahiplenebiliyor.
Buna karşılık asıl küçük insanlar tarihe “hayır, bunu başarmak için ruhunu ortaya koyan bizdik” diye bir iz bırakıyor.
Tabii Steve Jobs olsaydı muhtemelen yasaklardı.
Bu konu özelinde ise aksine bu akımın başlangıcına yakın bir yerdeydi: https://www.folklore.org/Signing_Party.html
Dolayısıyla “tabii” denecek bir şey değil; Microsoft’un da 2000’lerin başından beri easter egg yasağı politikası vardı, yani bu yalnızca Jobs’a özgü bir mesele değil.
Daha makul olan, o “gerçek insanlar”dan birinin temizlik çalışması sırasında bunu silmiş olması.
Jobs, Apple’da çalışan olağanüstü insanlar hakkında kamuya açık şekilde sık sık konuşurdu; Walt Mossberg ile de harika ekipler kurmanın ve yaratıcılığı geliştirmenin ne kadar önemli olduğunu konuşmuştu.
“O para zaten bunun için!”
80’lerden 90’ların ortasına kadar Apple’da ASIC ve kart tasarımı yapmış biriyle çalışmıştım.
Bir keresinde donanım ekibinin sistem tasarımı ve debug için kan ter döktüğünü, ama yazılım tarafının yaklaşık 50 KB’lık ROM imajını bilgisayarı tasarlayan ekibi övmek için kullanıp donanım ekibini tamamen dışarıda bıraktığını söyleyerek sinirlenmişti.
“We made the Amiga, they f----d it up!” mesajını hatırlatıyor.
https://arstechnica.com/gadgets/2007/12/amiga-history-part-5...
Easter egg’leri gerçekten özlüyorum.
Keşke geri gelseler.
Bugün belki küçük projelerde görülebilir ama daha büyük ölçekli işlerde de görmek isterim.
Çocukken bir ürünün içindeki easter egg’i keşfettiğimde ya da duyduğumda, sırf onu bulmak için bile o ürünü daha fazla kullanırdım.
Gizli küçük sevinçlerin eskisi kadar popüler olmaması üzücü; en yeni Android sürümlerinin bile geliştirici özelliklerini açması gereken kullanıcıya hayal kırıklığı yaratacak kadar cılız bir etkileşim sunan sıkıcı bir “easter egg” ile yetinmesi de üzücü.
https://raw.githubusercontent.com/tirrenotechnologies/tirren...
Eskiden biri iPad’de playground uygulamasına küçük bir kod yazıp ROM’daki sonraki logo benzeri bir şeyi çağıran bir easter egg paylaşmıştı.
O zaman yeniden üretebilmiştim ama sonrasında ilgili materyalleri bir daha bulamadım.
Yaklaşık 6 yıl önceydi.
Etkileyici
Bu Easter egg’in tetiklenme mekanizmasını birinin bulmasının bu kadar uzun sürmesi ilginç
Tersine mühendislik zor
Şimdi tersine mühendisliği nereden öğrenebileceğimi merak ediyorum
Nereden başlamalı, çevrim içi eğitimler ya da kitap önerileri var mı, merak ediyorum
Deneylerin sonuçları hemen gözle görülüyor ve cihazlar da basit
Ancak donanım “API”si modern programcılara epey sezgisel gelmeyebilir
Hackleme ve tersine mühendislik için çok sayıda araç da zaten hazırlanmış durumda; sevdiğiniz bir NES oyununu Mesen’e yükleyip tarayıcıda nesdev.org’u açık tutarak hata ayıklama araçlarıyla kurcalayabilirsiniz
Üzerinde çalıştığınız oyun daha önce biri tarafından tersine mühendislikten geçirildiyse https://datacrystal.tcrf.net üzerinde de işe yarar bilgiler bulabilirsiniz
Daha modern yazılımları tersine mühendislikten geçirmek zor
Eskiden GameCube oyun hackleme üzerine yazdığım iki yazı da ilginizi çekebilir: https://www.smokingonabike.com/2021/01/17/hacking-super-monk..., https://www.smokingonabike.com/2021/02/28/hacking-super-monk...
İlgili HN tartışması: https://news.ycombinator.com/item?id=26315368
Çoğu durumda yalnızca birinin ilk kez kodu kurcalamayı denemiş olması söz konusu
Özellikle Ghidra sayesinde daha az popüler mimarilerde bile decompilation çok daha kolaylaştıktan sonra bu daha da geçerli
Bir denemekte fayda var; alçakta asılı duran meyve epey fazla
Eskiden ben de benzer bir örnek göndermiştim
Neyse ki diğer işletim sistemi Easter egg’lerinin aksine “kötü desteklenen bir çalıştırılabilir dosya formatındaki bitmap kaynağında saklanan zincir XOR” gibi bir obfuscation yokmuş gibi görünüyor: https://x.com/mswin_bat/status/1504788425525719043
İnsanlar Steve Jobs’u çoğu zaman fazlasıyla tanrılaştırıyor, ama emin değilim
Kişisel olarak Mac’in çölde dolaştığı yılları da epey seviyorum
Böyle şeyler okuyunca, genel olarak kazançlı olmuş olsa bile Jobs’un dönüşüyle Apple’ın kültürünün ve kimliğinin bir şeyler kaybettiğini hissediyorum
Sculley, Spindler ve Amelio en iyi liderler değildi; Apple da Pink/Taligent, Copland, PowerBook 5300, Performa 5200/6200/5300/6300 serisi gibi donanım başarısızlıklarıyla ciddi şekilde sarsıldı
Özellikle 1995 Apple için felaket gibi bir yıldı
Yine de bu dönemde harika birçok şey vardı
Jean Louis Gassée genişletilebilir Mac için mücadele etti; onun etkisi Macintosh II’ye uzandı ve bu da “çöp kutusu” 2013 Mac Pro çıkana kadar kesintisiz süren uzun bir genişletilebilir Mac soyunu başlattı
System 7 en kararlı işletim sistemi değildi ama UI’si harikaydı
Don Norman ve Bruce Tognazzini sağlam UI/UX ilkeleri ve yönergeleri için bastırdı; HyperCard da bu dönemin bir ürünüydü
Larry Tesler, Alan Kay ve başkalarının bulunduğu Apple Advanced Technology Group, Dylan programlama dili ve SK8 ortamı gibi ilginç projeler yürüttü
OpenDoc da bileşen tabanlı bir yazılım platformu oluşturma yönünde ilginç bir girişimdi
Klasik Mac OS’ta sıcak ve oyuncu bir his de vardı; Mac OS X’e geçişle bu kayboldu
Elbette Mac OS X’e çok minnettarım
Hem “ara dönem” Apple’ını hem de Jobs’un döndüğü 1997-2011 Apple’ını seviyorum; ama Tim Cook’un Apple’ını pek sevmiyorum
Apple’ın köklerinden ciddi biçimde uzaklaştığını bu dönemden itibaren hissettim
Apple finansal açıdan tarihinin en başarılı dönemini yaşıyor ama Mac artık 1990’ların ya da 2000’lerin hissini taşımıyor
Apple artık bir Mac şirketi olmaktan çıkıp bir iPhone şirketi oldu
Bu, Stump the Experts için mükemmel bir malzeme olurdu; yapacak bir şey yok
Erken dönem bilişimde ekiplerin ne kadar küçük olduğu beni her zaman büyülemiştir; keşke bir şekilde o günlere dönebilsek