Небольшое предисловие
Это очень старая статья. Думаю, она будет интересна только людям, которые скучают по бумажной «Компьютерре», которые, как и я в институте, покупали номера любимого журнала почти каждый месяц каждую неделю :) Не знаю, как мне хватило наглости отправлять в редакцию свои первые «лонгриды», но это было крутое и прекрасное время. Спасибо за ваши добрые слова о статье «Культ сокобана».
Словосочетание «пасхальные яйца» (Easter Eggs) в компьютерном мире давно обрело собственный смысл. Сегодня это явление распространилось далеко за пределы программ и операционных систем и является своего рода искусством. Скрытые послания и шутки разработчиков, недокументированные возможности можно найти в самых неожиданных местах, однако для этого придётся как следует постараться.
Немного истории
По определению Википедии, «пасхальное яйцо» или «пасхалка» — это секрет, оставляемый в игре, фильме или программном обеспечении создателями, своеобразная шутка для внимательных зрителей или игроков. Это определение имеет один недостаток — в нём не отражена причина, по которой программисты закладывают пасхальные яйца в свои программы. Причина эта проста и незамысловата: программисты тоже люди. Они делают творческую креативную работу и получают за неё деньги. Однако любому творцу, создавшему что-то хорошее, всегда хочется подписать своё произведение, заявить миру о своем авторстве. Это, кстати, одна из самых распространённых ошибок начинающих хакеров. Человека так и подмывает оставить миру маленькую весточку: «Это я сделал! Я!» Маленькая незаметная строка в списке разработчиков на экране заставки к программе — совсем не то, чего хочется автору после месяцев кропотливой работы. Поэтому довольно большая часть пасхалок в той или иной форме содержит список разработчиков. Мир должен знать своих героев.
Считается, что первая пасхалка появилась в 1978 году в игре Adventure, выпускаемой компанией Atari. Руководство компании приняло решение не вносить в программу информацию о разработчиках. Разумеется, авторам игр, вкладывавшим в них знания и душу, такое решение не понравилось. Программист Уоррен Робинетт (Warren Robinett) нашёл простое и изящное решение — спрятать информацию о себе внутри игры. В план лабиринта Adventure была добавлена секретная комната с именем разработчика. Для того чтобы проникнуть в нее, нужно было отыскать невидимую серую точку на стене лабиринта. Она открывала путь в комнату, заполненную мерцающими буквами с именем автора игры.
Идея понравилась и пошла гулять по свету. Многие программисты, работавшие в Atari, затем участвовали в создании операционной системы для платформы Amiga. Поэтому не удивительно, что пасхалки появились и в этой системе. Оттуда они перекочевали и в другие ОС и прикладные программы.
Ещё один повод для коллекции
Сегодня пасхалки есть не только в программах, но и в сотовых телефонах, бытовой технике, различных электронных устройствах, на лицензионных дисках с фильмами. Пасхальные яйца стали своего рода искусством, обязательным компонентом большинства программ.
Для пользователей же подобные сюрпризы, скрытые в программах, стали новым объектом для изысканий и коллекционирования. В Интернете есть множество сайтов, посвящённых сбору и систематизации информации о пасхалках в различных продуктах.
Существуют разные способы поиска пасхалок. Несложные секретные окна и картинки во многих программах можно вызвать нажатием определённых комбинаций клавиш. Чаще всего встречаются комбинации вроде 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 скрывались трёхмерные гонки на машинках, своего рода маленький Need for Speed? Чтобы получить доступ к игре, нужно было последовательно выполнить ряд несложных действий. Машинки умели стрелять, освещать путь фарами и cливать масло на беду отстающим. В Word 97 был скрытый «Пинбол». В Excel 97 — встроенный авиасимулятор, а в совсем древнем Excel 95 — некое подобие трёхмерной бродилки по лабиринтам. Вообще, продукты Microsoft пестрили недокументированными блоками и возможностями. Стоит ли после этого удивляться их непомерным размерам?
Есть множество пасхалок и на виртуальных просторах. Например, переводчик Google понимает не только экзотические реальные языки, но и целый ряд вымышленных: «клингонский», «борк-борк-борк», «поросячья латынь», «элмер», «хакерский». Кстати, изредка меняющийся по случаю праздников главный логотип Google — тоже своего рода небольшой сюрприз для пользователей.
Чёрная дверь
Своеобразной разновидностью пасхальных яиц можно назвать многочисленные чёрные ходы, которые разработчики оставляют в программах. Сюда относятся как универсальные пароли, так и разнообразные скрытые возможности в играх. Кому неизвестна, например, последовательность клавиш IDDQD, позволявшая включить в игре Doom режим бессмертия? Эта комбинация давно вошла в фольклор, её печатают на майках и используют в различных произведениях искусства.
У каждой уважающей себя игры есть подобные секреты. В Интернете можно найти огромное количество сайтов с подобными кодами и секретами, позволяющими игроку получить недокументированные возможности.
Универсальные пароли имеются во многих программах. Они позволяют получать доступ к функциям и настройкам программы независимо от того, какой пароль был установлен пользователем. В частности, тем, кто занимался сборкой и настройкой компьютеров, были известны универсальные (так называемые инженерные) пароли BIOS. Например, многие знали пароль, подходящий для всех «старых» версий BIOS Award: «AWARD_SW» (на поздних версиях он уже не работает). Полный список подобных паролей для разных версий BIOS давно является секретом Полишинеля, его можно легко найти в Интернете.
Такие чёрные ходы обычно оставляются не по злому умыслу, а ради упрощения поддержки пользователя, ремонта оборудования, настройки программ. Многие из недокументированных входов неизвестны никому, кроме их создателей. Однако это очень опасный путь. Пока такие чёрные ходы используются с благими целями, они вполне оправданы. Но тайное часто становится явным. Стоит подобной информации попасть в руки посторонних людей, и она моментально превращается в страшную угрозу для безопасности данных. Очень уж много взломов происходит через такие вот чёрные ходы, предназначенные для благих целей.
Железные сюрпризы
Ещё один вид пасхалок — миниатюрные картинки на микросхемах. Рассмотреть такие изображения можно лишь под микроскопом. Чего только не увидишь, внимательно разглядывая современные чипы: машинки и животных, персонажей мультфильмов и различные надписи. И конечно же, имена разработчиков. Интересная галерея подобных изображений представлена на странице smithsonianchips.si.edu/chipfun/graff.htm.
Пасхалками снабжаются и периферийные устройства. Если, например, приподнять над столом оптическую мышку Apple Mighty Mouse, можно вместо привычного расплывчатого красного пятна увидеть силуэт мышиной мордочки.
Сканер Hewlett-Packard ScanJet 4C умел исполнять сонату Бетховена, «напевая» её доступными ему механическими способами. Вообще, сканеры различных моделей HP обладали выдающимися музыкальными способностями.
Ну и конечно же, не обходились без пасхальных яиц такие устройства, как телефоны, PDA, коммуникаторы и плееры. Так, в культовом Apple iPod была скрытая от посторонних глаз игра Breakout. Чтобы поиграть в неё, нужно было зайти из главного меню в директорию «About» и зажать на пару секунд центральную кнопку.
Найди слона
Казалось бы, что можно спрятать в меню DVD-дисков с их простой и незамысловатой навигацией. Однако авторы умудряются и там скрывать различное секретное наполнение, для просмотра которого требуется совершить определённые действия. Например, на лицензионных дисках с Симпсонами практически в каждом сезоне появляются бонусы, которые ещё надо постараться найти.
Прятать наполнение умудряются даже на музыкальных CD-дисках. Многие музыкальные альбомы имеют секретные треки, недоступные при обычном «прямом» проигрывании диска. Но если, не выключая воспроизведение первого трека, вернуться назад, за его «видимое» начало, используя кнопку ускоренной перемотки, зазвучит бонусный трек. Ещё один способ создания секретов — добавление в конце последнего «видимого» трека долгой паузы. Если набраться терпения, то через несколько минут тишины начнется проигрывание скрытого наполнения диска.
В начале статьи я упомянул пасхальное яйцо, считающееся первым в истории. Однако идея скрытых посланий и сообщений появилась гораздо раньше. Например, многие книги — от самых древних фолиантов до современных технических руководств — содержат в тексте скрытые зашифрованные послания, которые могут обнаружить только сообразительные или посвящённые читатели. Классическим примером таких посланий являются анаграммы — бессмысленные или безобидные фразы, которые оживают при правильной перестановке букв. Иногда подобные послания оставляются авторами и в явной форме. Например, многим известна байка о нерадивом аспиранте, вставившем в текст диссертации (ближе к концу) фразу: «Тому, кто дочитает до этого места, ставлю бутылку коньяка». Один дотошный профессор через много лет после успешной защиты все же прочёл весь текст, был большой скандал.
Вообще, эта полумифическая история находит всё новые подтверждения в реальности. Как известно, документацию практически никто не читает, что даёт повод техническим писателям пошалить от души. Иногда в документации в качестве примеров можно обнаружить довольно забавные вещи.
Есть свои скрытые символы и в кино, и в изобразительном искусстве, и в музыке. Вообще, в каждой профессиональной среде существуют неизвестные посторонним наблюдателям коды и условные знаки. Некоторые профессионалы оставляют внутри своих произведений весточку будущим поколениям. Именной кирпич в основании дома, многочисленные таблички с именами авторов в изготавливаемых ими предметах, капсулы, оставляемые реставраторами памятников архитектуры — всё это своего рода пасхальные яйца.
Практически в любой творческой профессии можно найти возможность оставить безобидную информацию о себе, своих увлечениях, сделать своеобразный сюрприз для нынешних и будущих поколений. Подобные послания никому не причиняют вреда, это своего рода недокументированные возможности, неучтённая информация. В современном мире, когда имя рядового исполнителя скрыто за именем корпорации, пасхалки позволяют рассказать об истинных создателях программ, устройств и текстов, немного пошалить, обойдя стандарты, правила и запреты. Разве от этого кому-нибудь хуже?
Статья была впервые опубликована в журнале «Компьютерра» 2 октября 2007.