Wie ein 27 Jahre altes Easter Egg im Power Mac G3 ROM entdeckt wurde
(downtowndougbrown.com)- Im ROM der beigen Power Macintosh G3 von 1997 bis 1999 war ein verstecktes Teamfoto enthalten, aber wie man es auf echter Hardware anzeigt, blieb bis 2025 unbekannt
- Der entscheidende Hinweis kam von Pascal-Strings wie
.Edisk,secret ROM imageundThe Teamam Ende vonnittresource ID 43 „Native 4.3“; diese Ressource war nativer PowerPC-SCSI-Manager-4.3-Code - Durch Reverse Engineering der PEF-Datei mit
Ghidraließ sich bestätigen, dass bei dem RAM-Disk-Volume-Namensecret ROM imagedas JPEG ausHPOEresource ID 1 als DateiThe Teamgeschrieben wird - Die Aktivierung erfolgt, indem man die RAM Disk einschaltet, neu startet und dann beim Löschen der RAM Disk im Formatierungsdialog exakt
secret ROM imageeingibt; das ließ sich im Emulator und auf einem echten Desktop-G3 reproduzieren - Nach verschiedenen Tests scheint die Methode bis Mac OS 9.0.4 zu funktionieren; 9.1 könnte die erste Version sein, in der sie nicht mehr funktioniert
Verstecktes Teamfoto im ROM
- Bei der Untersuchung des Power Macintosh G3 ROMs wurde eine bislang undokumentierte Aktivierungsmethode für das Easter Egg sichtbar
- Das betroffene ROM wurde in den 1997 bis 1999 veröffentlichten beigen Desktop-, Minitower- und All-in-One-G3-Modellen verwendet
- Für die ROM-Analyse kamen Hex Fiend und Eric Harmons Mac-ROM-Template ROM Fiend zum Einsatz
- In Ressourcen vom Typ
HPOEim ROM befanden sich JPEG-Fotos mehrerer Personen, offenbar Mitglieder des Teams hinter diesen Mac-Modellen - Die Existenz der Bilder selbst ist keine neue Entdeckung; Pierre Dandumont hatte sie bereits 2014 behandelt
- Damals war noch nicht geklärt, wie sich diese Bilder auf echter Hardware anzeigen lassen
- Bei einigen älteren Macs gab es geheime Tastenkombinationen für ähnliche Fotos, aber wie die Bilder im G3-ROM angezeigt werden, blieb ein Rätsel
Die SCSI-Manager-4.3-Ressource als Hinweis
- Bei weiterer Analyse wurde
nittresource ID 43 mit dem Namen „Native 4.3“ gefunden - Dank Keith Kaisershots Pippin-Forschung ließ sich schnell erkennen, dass es sich dabei um nativen PowerPC-SCSI-Manager-4.3-Code handelte
- Am Ende der Ressource standen Pascal-Strings, die mit dem Easter Egg zusammenhängen konnten
.Edisksecret ROM imageThe Team
- Besonders
secret ROM imagedeutete stark auf einen Zusammenhang mit den zuvor gefundenen versteckten Fotos hin - Eine Websuche ergab, dass derselbe Ausdruck auch in einem Easter Egg früherer PowerPC-Macs verwendet wurde
- Auf älteren Geräten erschien das Foto, wenn man den Ausdruck eingab, auswählte und dann auf den Desktop zog
- Auf dem G3 funktionierte dieselbe Methode jedoch nicht
Der tatsächliche Codepfad in Ghidra
- Nachdem
nittresource ID 43 vollständig als Datei extrahiert worden war, wurde sie alsPowerPC PEF executableerkannt - Die ersten 12 Bytes der Datei lauteten
Joy!peffpwpc, und Ghidra lud sie direkt als PEF-Datei - Bei der ersten Analyse wurden Referenzen auf den String
secret ROM imagenicht korrekt erkannt, aber nach einem weiteren Auto Analyze fand das Tool zusätzliche Referenzen auf die relevanten Strings - Die betreffende Funktion hatte mit dem
.EDisk-Treiber zu tun, also dem RAM-Disk-Treiber - Das Wesentliche des dekompilierten Verhaltens war wie folgt
- Suche nach einem Treiber namens
.Edisk - Suche nach der an diesen Treiber gebundenen Disk, also der RAM Disk
- Suche nach dem zugehörigen Volume dieser Disk
- Wenn der Volume-Name
secret ROM imageist:- Lade
HPOEresource ID 1 und hole die JPEG-Bilddaten - Erzeuge die Datei
The Teammit Creatorttxtund TypJPEG - Öffne die Datei, schreibe die JPEG-Daten hinein und schließe sie wieder
- Führe anschließend weitere Aktionen im Zusammenhang mit dem Control-Entry des Treibers aus
- Lade
- Suche nach einem Treiber namens
- Diese Funktion wurde nur an einer weiteren Stelle aufgerufen, und dort wurde geprüft, ob das erste Argument
0x3DA(dezimal 986) ist
Aktivierung über das Formatieren der RAM Disk
- Da gerade kein echter beiger G3 zur Hand war, wurden die Funde im
#mac68k-Kanal von Libera geteilt, und^alexfand mithilfe von Experimenten in Infinite Mac heraus, dass der Vorgang zum Löschen der RAM Disk nötig ist - Danach funktionierte dieselbe Methode auch auf echter Desktop-G3-Hardware
- Im Browser lässt sich das mit einem emulierten beigen G3 mit installiertem Mac OS 8.1 reproduzieren
- Verwendet wird DingusPPC
- Beim Start erscheint auffällig ein Fehler zur fehlgeschlagenen Alias-Auflösung; wenn er auftaucht, kann man einfach auf Stop klicken
- Die Reproduktionsschritte sind wie folgt
- Im Kontrollfeld „Memory“ die RAM Disk aktivieren
- Im Menü „Special“ „Restart“ wählen
- Wenn der Desktop wieder erscheint, das RAM-Disk-Symbol auswählen
- Im Menü „Special“ „Erase Disk“ wählen
- Im Formatierungsdialog exakt
secret ROM imageeingeben - Auf „Erase“ klicken
- Öffnet man die neu formatierte RAM Disk, erscheint eine Datei namens
The Team - Ein Doppelklick auf diese Datei öffnet SimpleText
Eines der letzten Easter Eggs einer ganzen Ära, bis Mac OS 9.0.4
- Nach Tests mehrerer Personen sowie eigenen Tests scheint diese Methode bis Mac OS 9.0.4 zu funktionieren
- Mac OS 9.1 könnte die erste Version sein, in der sie nicht mehr funktioniert
- Soweit derzeit nachvollziehbar, scheint dieses Geheimnis tatsächlich neu aufgedeckt worden zu sein
- Dass sich Bilder im ROM befinden, war bereits bekannt
- Wie man sie tatsächlich aktiviert, war jedoch nicht dokumentiert
- Dieses Easter Egg könnte zu den letzten seiner Art in Macs gehören, die noch vor den Berichten eingebaut wurden, dass Steve Jobs nach seiner Rückkehr zu Apple 1997 Easter Eggs verboten habe
- Hätte
^alexnicht die Aktivierungsbedingung mit dem Löschen der RAM Disk gefunden, wäre vermutlich deutlich mehr Nachverfolgung des restlichen Codes nötig gewesen
1 Kommentare
Meinungen auf Hacker News
Solche Easter Eggs vermitteln insgesamt sehr stark die Atmosphäre der frühen Desktop-PC-Ära.
Sie waren ein sehr menschliches Element, das einen daran erinnerte, dass hinter dem Produkt Menschen mit Gesichtern und Namen standen.
Damals waren das Projekte, die von Hardcore-Nerds mit Leidenschaft gebaut wurden; heute ist die Stimmung eher so, dass man möglichst nicht hinter die Abstraktionsschichten eines Produkts blicken soll.
Produktverantwortliche wollen das Gesamtbild eines Produkts kontrollieren, und wenn man bedenkt, dass die Namensliste zu groß sein könnte oder später jemand darauf problematisch werden könnte, scheint Entmenschlichung die sicherere Variante zu sein.
Heute könnte ich mir ein cooles Easter Egg vorstellen, bei dem ein iPhone bei jeder Aktivierung zufällig ein paar an der Entwicklung beteiligte Personen zeigt. Ich persönlich fände das gut, aber es würde wohl dem gehobenen Geschmack der Produktverantwortlichen zuwiderlaufen.
Bei deadlinegetriebener Entwicklung entstehen Situationen, in denen ein Teil des Teams darauf wartet, dass andere Teammitglieder etwas fertigstellen, um einen Meilenstein zu erreichen, und nur am Backlog herumzuwühlen hat auch seine Grenzen.
Wenn Langeweile auf die Rechtfertigung trifft: „Ein kleines heimliches Extra wird die Roadmap schon nicht beeinflussen“, gibt es viel mehr Motivation und Gelegenheit.
Das gilt besonders heute, wo Software so komplex und groß geworden ist; außerdem weiß ich nicht, ob man in Unternehmen überhaupt Zeit hat, etwas Lustiges zu bauen.
Es fühlt sich immer an, als würde man mit 120 % arbeiten.
Früher wurde Software von wenigen Leuten gebaut, heute sind in einer Organisation Tausende daran beteiligt.
Ob gut oder schlecht, das ist die Realität, und bei heutigen großen Softwareprojekten ergibt ein Easter Egg, das nur ein paar Personen hervorhebt, nicht besonders viel Sinn.
Ziemlich schön, und es zeigt, dass hinter Unternehmen echte Menschen stehen.
Einige Reiche sagen gern „Ich habe das gebaut“ und eignen sich damit die Leistungen der kleinen Leute an.
Die tatsächlichen kleinen Leute hingegen hinterlassen in der Geschichte Spuren nach dem Motto: „Nein, wir waren es, die ihre Seele hineingesteckt haben, um das zu schaffen.“
Natürlich hätte Steve Jobs das wohl verboten.
Zu diesem Thema war er eher so etwas wie ein früher Ursprung dieser Entwicklung: https://www.folklore.org/Signing_Party.html
Daher ist „natürlich“ hier nicht angebracht, und Microsoft hatte ab Anfang der 2000er ebenfalls eine Easter-Egg-Verbotsrichtlinie; es war also nicht nur ein Jobs-Problem.
Plausibler ist, dass eine dieser „echten Personen“ es bei Aufräumarbeiten gelöscht hat.
Jobs sprach öffentlich oft über die erstaunlichen Menschen, die bei Apple arbeiteten, und sprach auch mit Walt Mossberg darüber, wie wichtig es sei, großartige Teams aufzubauen und Kreativität zu fördern.
„Dafür ist das Geld da!“
Ich habe einmal mit jemandem gearbeitet, der von den 80ern bis Mitte der 90er bei Apple ASIC- und Board-Design gemacht hatte.
Er war einmal wütend, weil das Hardwareteam Blut, Schweiß und Tränen in Systemdesign und Debugging gesteckt hatte, während die Softwareseite etwa 50 KB des ROM-Images dafür verwendete, das Team zu feiern, das den Computer entworfen hatte, das Hardwareteam dabei aber komplett ausließ.
Mir fällt die Nachricht „We made the Amiga, they f----d it up!“ ein.
https://arstechnica.com/gadgets/2007/12/amiga-history-part-5...
Ich vermisse Easter Eggs wirklich.
Ich wünschte, man würde sie zurückbringen.
Heutzutage sieht man sie vielleicht noch in kleinen Projekten, aber ich würde sie auch gern in größeren Arbeiten sehen.
Als Kind habe ich, wenn ich ein Easter Egg in einem Produkt gefunden oder davon gehört habe, das Produkt allein schon deshalb mehr benutzt, um es zu finden.
Es ist schade, dass kleine versteckte Freuden nicht mehr so beliebt sind wie früher, und traurig, dass selbst die neuesten Android-Versionen nur noch ein langweiliges „Easter Egg“ bieten, das für Nutzer, die erst die Entwicklerfunktionen öffnen müssen, enttäuschend wenig Interaktion bereithält.
https://raw.githubusercontent.com/tirrenotechnologies/tirren...
Früher hat einmal jemand ein Easter Egg geteilt, bei dem man auf dem iPad in der Playground-App ein kleines Stück Code schrieb und dadurch so etwas wie das nächste Logo aus dem ROM aufrief.
Damals konnte ich es reproduzieren, habe die dazugehörigen Materialien später aber nie wiedergefunden.
Das war ungefähr vor sechs Jahren.
Beeindruckend
Ich finde es interessant, dass es so lange gedauert hat, bis jemand den Auslösemechanismus dieses Easter Eggs gefunden hat
Reverse Engineering ist schwer
Jetzt frage ich mich, wo man Reverse Engineering lernen kann
Ich frage mich, wo man anfangen sollte und ob es empfehlenswerte Online-Tutorials oder Bücher gibt
Die Ergebnisse der Experimente sieht man sofort, und die Geräte sind einfach aufgebaut
Allerdings kann die Hardware-„API“ für moderne Programmierer ziemlich wenig intuitiv sein
Für Hacking und Reverse Engineering gibt es bereits viele Tools; man kann also einfach sein Lieblings-NES-Spiel in Mesen laden, nesdev.org im Browser geöffnet lassen und mit den Debugging-Tools herumspielen
Wenn das Spiel, mit dem man sich beschäftigt, schon von jemandem reverse-engineert wurde, findet man auch unter https://datacrystal.tcrf.net nützliche Informationen
Modernere Software zu reverse-engineeren ist schwieriger
Zwei Artikel, die ich früher über das Hacken von Gamecube-Spielen geschrieben habe, könnten ebenfalls interessant sein: https://www.smokingonabike.com/2021/01/17/hacking-super-monk..., https://www.smokingonabike.com/2021/02/28/hacking-super-monk...
Zugehörige HN-Diskussion: https://news.ycombinator.com/item?id=26315368
Oft hat einfach nur jemand zum ersten Mal versucht, sich durch den Code zu graben
Das gilt besonders, seit Dekompilierung dank Ghidra auch auf weniger populären Architekturen viel einfacher geworden ist
Man sollte es einmal ausprobieren; es gibt ziemlich viele niedrig hängende Früchte
Ich habe früher auch einmal einen ähnlichen Fall eingereicht
Zum Glück scheint es hier, anders als bei anderen Betriebssystem-Easter-Eggs, keine Verschleierung wie „verkettetes XOR in Bitmap-Ressourcen eines schlecht unterstützten ausführbaren Dateiformats“ gegeben zu haben: https://x.com/mswin_bat/status/1504788425525719043
Viele Leute vergöttern Steve Jobs zu sehr, aber ich bin mir da nicht so sicher
Persönlich mag ich auch die Zeit, in der der Mac durch die Wildnis irrte, ziemlich gern
Wenn ich so etwas lese, habe ich das Gefühl, dass Apple mit Jobs’ Rückkehr etwas von seiner Kultur und Identität verloren hat, selbst wenn es insgesamt ein Gewinn war
Sculley, Spindler und Amelio waren nicht die besten Führungskräfte, und Apple wurde von Pink/Taligent, Copland, dem PowerBook 5300 sowie Hardware-Fehlschlägen wie den Reihen Performa 5200/6200/5300/6300 stark erschüttert
Besonders 1995 war für Apple ein katastrophales Jahr
Trotzdem gab es in dieser Zeit viel Großartiges
Jean-Louis Gassée kämpfte für erweiterbare Macs, und sein Einfluss führte zum Macintosh II; damit begann eine lange Linie erweiterbarer Macs, die bis zum „Mülleimer“-Mac Pro von 2013 nicht abriss
System 7 war nicht das stabilste Betriebssystem, aber die UI war hervorragend
Don Norman und Bruce Tognazzini trieben solide UI/UX-Prinzipien und Richtlinien voran, und auch HyperCard war ein Produkt dieser Zeit
Apples Advanced Technology Group mit Larry Tesler, Alan Kay und anderen arbeitete an interessanten Projekten wie der Programmiersprache Dylan und der SK8-Umgebung
Auch OpenDoc war ein interessanter Versuch, eine komponentenbasierte Softwareplattform zu schaffen
Classic Mac OS hatte außerdem ein gemütliches, spielerisches Gefühl, das beim Übergang zu Mac OS X verschwand
Natürlich bin ich Mac OS X sehr dankbar
Ich mag sowohl das Apple des „Interregnums“ als auch das Apple der Jahre 1997 bis 2011 nach Jobs’ Rückkehr, aber Tim Cooks Apple mag ich weniger
Ab diesem Zeitpunkt hatte ich das Gefühl, dass Apple sich stark von seinen Wurzeln entfernt hat
Finanziell ist Apple so erfolgreich wie nie zuvor, aber der Mac fühlt sich nicht mehr wie in den 1990ern oder 2000ern an
Apple ist inzwischen von einer Mac-Firma zu einer iPhone-Firma geworden
Das wäre perfektes Material für Stump the Experts gewesen, aber da kann man nichts machen
Mich fasziniert immer wieder, wie klein die Teams in der Frühzeit des Computing waren, und ich wünschte, wir könnten irgendwie in diese Zeit zurückkehren