Это сделал я
АрхивСловосочетание "пасхальные яйца" (Easter Eggs) в компьютерном мире давно обрело собственный смысл. Сегодня это явление распространилось далеко за пределы программ и операционных систем и является своего рода искусством. Скрытые послания и шутки разработчиков, недокументированные возможности можно найти в самых неожиданных местах, однако для этого придется как следует постараться.
Словосочетание "пасхальные яйца" (Easter Eggs) в компьютерном мире давно обрело собственный смысл. Сегодня это явление распространилось далеко за пределы программ и операционных систем и является своего рода искусством. Скрытые послания и шутки разработчиков, недокументированные возможности можно найти в самых неожиданных местах, однако для этого придется как следует постараться.
Немного истории
По определению Википедии, пасхальное яйцо - это секрет, оставляемый в игре или программном обеспечении создателями, своеобразная шутка для внимательных зрителей или игроков. Это определение имеет один недостаток - в нем не отражена причина, по которой программисты закладывают пасхальные яйца в свои программы. Причина эта проста и незамысловата: программисты тоже люди. Они делают творческую креативную работу и получают за нее деньги. Однако любому творцу, создавшему что-то хорошее, всегда хочется подписать свое произведение, заявить миру о своем авторстве. Это, кстати, одна из самых распространенных ошибок начинающих хакеров. Человека так и подмывает оставить миру маленькую весточку: "Это я сделал! Я!" Маленькая незаметная строка в списке разработчиков на экране заставки к программе - совсем не то, чего хочется автору после месяцев кропотливой работы. Поэтому довольно большая часть пасхальных яиц в той или иной форме содержит список разработчиков. Мир должен знать своих героев.
Считается, что первое пасхальное яйцо появилось в 1978 году в игре Adventure, выпускаемой компанией Atari. Руководство компании приняло решение не вносить в программу информацию о разработчиках. Разумеется, авторам игр, вкладывавшим в них знания и душу, такое решение не понравилось. Программист Уоррен Робинетт (Warren Robinett) нашел простое и изящное решение - спрятать информацию о себе внутри игры. В план лабиринта Adventure была добавлена секретная комната с именем разработчика. Для того чтобы проникнуть в нее, нужно было отыскать невидимую серую точку на стене лабиринта. Она открывала путь в комнату, заполненную мерцающими плакатами с именем автора игры.
Идея понравилась и пошла гулять по свету. Многие программисты, работавшие в Atari, затем участвовали в создании операционной системы для платформы Amiga. Поэтому не удивительно, что пасхальные яйца появились и в этой системе. Оттуда они перекочевали и в другие ОС и прикладные программы.
Еще один повод для коллекции
Сегодня пасхальные яйца есть не только в программах, но и в сотовых телефонах, бытовой технике, различных электронных устройствах, на лицензионных дисках с фильмами. Пасхальные яйца стали своего рода искусством, обязательным компонентом большинства программ.
Для пользователей же подобные сюрпризы, скрытые в программах, стали новым объектом для изысканий и коллекционирования. В Интернете есть множество сайтов, посвященных сбору и систематизации информации о пасхальных яйцах в различных продуктах. Например, на www.eeggs.com можно найти информацию о тайниках в программах, играх, фильмах, на DVD-дисках, в музыкальных произведениях и даже книгах. Обширный русскоязычный каталог пасхальных яиц можно найти по адресу www.eastereggs.narod.ru.
Существуют разные способы поиска пасхальных яиц. Несложные секретные окна и картинки во многих программах можно вызвать нажатием определенных комбинаций клавиш. Чаще всего встречаются комбинации вроде Ctrl+Alt+Shift, Alt+Ctrl, Ctrl+Shift. К интересным последствиям могут привести клики мышью на расположенных в различных местах логотипах программы, рисунках и других небольших элементах интерфейса. Разработчики очень любят прятать пасхальные яйца в окне "О программе" ("About"), поэтому там искать следует в первую очередь. Многие скрытые возможности находят, просматривая код программы, но это уже высший пилотаж.
Часто о секретах в своем детище сообщают сами разработчики. Какой смысл трудиться над дополнительными возможностями, если ими никто не сможет воспользоваться?
Полет фантазии
Наибольшее количество пасхальных яиц можно найти, конечно же, в играх. Тут разработчики позволяют себе оттянуться, не ограничивая полет фантазии логикой и сюжетом игры. В Diablo есть миленький секретный уровень в коровьем стиле, а в Microsoft Combat Flight Simulator можно наткнуться на мирно летящую по воздуху свинку. В игре Half-Life: Counter-Strike есть секретная комнатка, в которой толпа мышек поклоняется фотографии.
Подписи в играх оставляют не только программисты. Над современной большой игрой работает целая команда разработчиков, и оставить небольшой сюрприз может практически каждый из ее членов. Например, во многих трехмерных играх используются текстуры, создаваемые дизайнерами текстур. Стоит ли удивляться, когда вместо обычной кирпичной стены мы увидим что-нибудь особенное - например, оригинальную надпись. Оставляют свои маленькие сюрпризы и профессионалы, отвечающие за звуковое оформление игры. В определенных местах игр можно услышать такие звуки, которых вы не услышите больше нигде. Много интересного можно узнать и при прослушивании звуковых файлов, прилагаемых к игре, с помощью внешних проигрывателей.
Изобилует пасхальными яйцами любимая серия игр моей жены из цикла Moorhuhn (те самые несчастные фазаны, по которым надо стрелять патронами ужасающего калибра). Тут уж авторы оторвались по полной. Такого количества скрытых возможностей и правил, пожалуй, нет ни в одной другой игре. Например, для того, чтобы поиграть в фазаний тетрис (в третьей части игры), необходимо в главном меню кликнуть последовательно на все буквы названия игры: "M-O-O-R-H-U-H-N". Эта возможность вполне предсказуемая: очень многие разработчики встраивают в свои программы клоны тетрисов. Но когда жена стала показывать мне, как надо стрелять в определенное время по определенным снежинкам (в "зимней" версии), я понял, что тетрис - это цветочки. А как вам такое: на тридцать первой секунде (не раньше и не позже) в определенном месте появляется заяц. Если убить зайца - появляется ежик. А вот за ежика уже даются бонусные очки. Выстрелами можно двигать предметы к определенной цели, добиваться различных эффектов вроде красочного салюта. Таким нехитрым способом обычная стрелялка превращается чуть ли не в "квест", где от вашей догадливости и смекалки зависит итоговая сумма очков.
Незнакомое в знакомом
Попробуем открыть для себя незнакомые возможности в давно знакомых программах. Знали ли вы, например, о том, что в обширном коде Microsoft Excel 2000 скрываются трехмерные гонки на машинках [1], своего рода маленький Need for Speed? Чтобы получить доступ к игре, нужно последовательно выполнить ряд несложных действий (они подробно описаны на сайте www.eastereggs.narod.ru). С помощью трехмерных машинок можно управлять стрелками курсора. Машинки умеют стрелять, освещать путь фарами и cливать масло на беду отстающим. В Word 97 есть скрытый "Пинбол" [2]. В Excel 97 - встроенный авиасимулятор, а в древнем Excel 95 - некое подобие трехмерной бродилки по лабиринтам. Вообще, продукты Microsoft пестрят недокументированными блоками и возможностями. Стоит ли после этого удивляться их непомерным размерам?
Те, у кого установлен Adobe Photoshop, могут посмотреть альтернативный вид окна "About", который вызывается, если удерживать клавиши Alt+Ctrl.
Есть множество пасхальных яиц и на виртуальных просторах. Например, для многих будет сюрпризом, что Google понимает не только экзотические реальные языки, но и целый ряд вымышленных: "клингонский", "борк-борк-борк", "поросячья латынь", "элмер", "хакерский". Кстати, изредка меняющийся по случаю праздников главный логотип Google - тоже своего рода небольшой сюрприз для пользователей.
Черная дверь
Своеобразной разновидностью пасхальных яиц можно назвать многочисленные черные ходы, которые разработчики оставляют в программах. Сюда относятся как универсальные пароли, так и разнообразные скрытые возможности в играх. Кому неизвестна, например, последовательность клавиш IDDQD, позволяющая включить в игре Doom режим бессмертия? Эта комбинация давно вошла в фольклор, ее печатают на майках и используют в различных произведениях искусства.
У каждой уважающей себя игры есть подобные секреты. В Интернете можно найти огромное количество сайтов с подобными кодами и секретами, позволяющими игроку получить недокументированные возможности.
Универсальные пароли имеются во многих программах. Они позволяют получать доступ к функциям и настройкам программы независимо от того, какой пароль был установлен пользователем. В частности, тем, кто занимался сборкой и настройкой компьютеров, известны универсальные (так называемые инженерные) пароли BIOS. Например, многие знают пароль, подходящий для всех "старых" версий BIOS Award: "AWARD_SW" (на современных версиях он уже не работает). Полный список подобных паролей для разных версий BIOS давно является секретом Полишинеля, его можно легко найти в Интернете.
Такие черные ходы обычно оставляются не по злому умыслу, а ради упрощения поддержки пользователя, ремонта оборудования, настройки программ. Многие из недокументированных входов неизвестны никому, кроме их создателей. Однако это очень опасный путь. Пока такие черные ходы используются с благими целями, они вполне оправданы. Но тайное часто становится явным. Стоит подобной информации попасть в руки посторонних людей, и она моментально превращается в страшную угрозу для безопасности данных. Очень уж много взломов происходит через такие вот черные ходы, предназначенные для благих целей.
Железные сюрпризы
Еще один вид пасхальных яиц - миниатюрные картинки на микросхемах. Рассмотреть такие изображения можно лишь под микроскопом. Чего только не увидишь, внимательно разглядывая современные чипы: машинки и животных, персонажей мультфильмов и различные надписи. И конечно же, имена разработчиков. Интересная галерея подобных изображений представлена на странице smithsonianchips.si.edu/chipfun/graff.htm. Бёрд Киви уже писал о подобных картинках в статье "Силиконовые яйца" ("КТ" #438).
Пасхальными яйцами снабжаются и периферийные устройства. Если, например, приподнять над столом оптическую мышку Apple Mighty Mouse, можно вместо привычного расплывчатого красного пятна увидеть силуэт мышиной мордочки [3].
Сканер Hewlett-Packard ScanJet 4C умеет исполнять сонату Бетховена, "напевая" ее доступными ему механическими способами. Вообще, сканеры различных моделей HP обладают выдающимися музыкальными способностями.
Ну и конечно же, не обходятся без пасхальных яиц такие устройства, как телефоны, PDA, коммуникаторы и плееры. Так, в культовом Apple iPod есть скрытая от посторонних глаз игра Breakout. Чтобы поиграть в нее, нужно зайти из главного меню в директорию "About" и зажать на пару секунд центральную кнопку.
Найди слона
Казалось бы, что можно спрятать в меню DVD-дисков с их простой и незамысловатой навигацией. Однако авторы умудряются и там скрывать различное секретное наполнение, для просмотра которого требуется совершить определенные действия. Список таких секретов на различных лицензионных DVD-дисках размещен на сайте www.dvdeastereggs.com. Еще одна подобная коллекция есть по адресу www.dvdreview.com/eastereggs. Например, на лицензионных дисках с Симпсонами практически в каждом сезоне появляются бонусы, которые еще надо постараться найти.
Прятать наполнение умудряются даже на музыкальных CD-дисках. Многие музыкальные альбомы имеют секретные треки, недоступные при обычном "прямом" проигрывании диска. Но если, не выключая воспроизведение первого трека, вернуться назад, за его "видимое" начало, используя кнопку ускоренной перемотки, зазвучит бонусный трек. Еще один способ создания секретов - добавление в конце последнего "видимого" трека долгой паузы. Если набраться терпения, то через несколько минут тишины начнется проигрывание скрытого наполнения диска.
В начале статьи я упомянул пасхальное яйцо, считающееся первым в истории. Однако идея скрытых посланий и сообщений появилась гораздо раньше. Например, многие книги - от самых древних фолиантов до современных технических руководств - содержат в тексте скрытые зашифрованные послания, которые могут обнаружить только сообразительные или посвященные читатели. Классическим примером таких посланий являются анаграммы - бессмысленные или безобидные фразы, которые оживают при правильной перестановке букв. Иногда подобные послания оставляются авторами и в явной форме. Например, многим известна байка о нерадивом аспиранте, вставившем в текст диссертации (ближе к концу) фразу: "Тому, кто дочитает до этого места, ставлю бутылку коньяка". Один дотошный профессор через много лет после успешной защиты все же прочел весь текст, был большой скандал.
Вообще, эта полумифическая история находит все новые подтверждения в реальности. Как известно, документацию практически никто не читает, что дает повод техническим писателям пошалить от души. Иногда в документации в качестве примеров можно обнаружить довольно забавные вещи.
Есть свои скрытые символы и в кино, и в изобразительном искусстве, и в музыке. Вообще, в каждой профессиональной среде сущестствуют неизвестные посторонним наблюдателям коды и условные знаки. Некоторые профессионалы оставляют внутри своих произведений весточку будущим поколениям. Именной кирпич в основании дома, многочисленные таблички с именами авторов в изготавливаемых ими предметах, капсулы, оставляемые реставраторами памятников архитектуры - все это своего рода пасхальные яйца.
Практически в любой творческой профессии можно найти возможность оставить безобидную информацию о себе, своих увлечениях, сделать своеобразный сюрприз для нынешних и будущих поколений. Подобные послания никому не причиняют вреда, это своего рода недокументированные возможности, неучтенная информация. В современном мире, когда имя рядового исполнителя скрыто за именем корпорации, пасхальные яйца позволяют рассказать об истинных создателях программ, текстов, устройств и пр., немного пошалить, обойдя стандарты, правила и запреты. Разве от этого кому-нибудь хуже?