Болтун - находка для шпиона
АрхивИстория, как известно, любит ходить кругами. В начале 1970-х годов несколько американских хакеров совершенно случайно открыли способы воздействия на телефонную электронику с помощью специальных звуков.
История, как известно, любит ходить кругами. В начале 1970-х годов, когда молодые пытливые любители радиоэлектроники только-только начинали забавляться с новыми телефонными сетями и мини-компьютерами, а модные жаргонизмы вроде phreaking и hacking звучали лишь в узком кругу посвященных, несколько американских хакеров совершенно случайно открыли способы воздействия на телефонную электронику с помощью специальных звуков.
Сначала Джо Энгресия (Joe Engressia, вошедший в историю как "The Whistler", то есть "Свистун"), слепой от рождения самородок, обладавший талантом к высокохудожественному свисту, обнаружил, что благодаря своему дару он может управлять работой телефона: поначалу просто завершать соединение, а после серии экспериментов - даже делать бесплатные междугородние звонки. Другой "дедушка всех хакеров", ветеран вьетнамской войны Джон Дрейпер (John Draper), хоть и не умел так талантливо свистеть, зато обнаружил, что копеечная пластмассовая свистулька, вкладываемая в коробки с хлопьями Cap’n Crunch, издает тот самый звук частотой 2600 герц, который выводит телефон в режим бесплатных звонков (операторы закрыли лазейку по мере апгрейда аппаратуры).
А небезызвестный в компьютерном мире Стив Возняк в студенческие годы подрабатывал тем, что собирал и продавал сокурсникам особые коробочки "Blue Box", теперь уже с помощью электроники воспроизводившие заветный 2600-герцовый сигнал. Как потом вспоминал "Воз", именно эти первые эксперименты с хакингом привели его в гараж к Стиву Джобсу, где два приятеля на пару начали создавать свой чудо-компьютер и фирму Apple.
И вот теперь история, описав один круг, пошла на второй. Нынешнее поколение хакеров-линуксоидов с помощью изощренного колдовства со звуками вскрыла новейшую и, как обычно, закрытую платформу корпорации Apple - четвертое поколение плейеров iPod. Платформа iPod чуть ли не с момента своего появления вызывает у любителей Linux повышенное внимание благодаря своим привлекательным аппаратным характеристикам. Над превращением iPod в полноценный карманный компьютер работает целое сообщество программистов (проект sourceforge.net/projects/ipodlinux). В плейер уже удалось портировать специально модифицированное ядро ОС под названием uClinux (www.uclinux.org), под него сделан несложный пользовательский интерфейс Podzilla, благодаря чему на первых трех поколениях iPod уже можно запускать кое-какие приложения.
Четвертое поколение плейера оставалось "неохваченным", поскольку Apple обновила систему и для подступа к новому загрузчику требовалась крайне трудоемкая работа - полное обратное восстановление кода, хранимого в памяти flashROM. Подступиться к коду сумел семнадцатилетний немецкий студент-программист Нильс Шнайдер (Nils Schneider), получивший iPod в подарок на Рождество и тут же загоревшийся идеей превратить его в полноценный Linux-компьютер. Но в ту пору соратники могли предложить лишь ограниченный доступ к подаче команд непосредственно на процессоры (в устройстве их два), а для всего остального - доступа к экрану, работе с меню и жестким диском - требовался код из flashROM. Добыть же его, не имея никакой информации об устройстве ввода-вывода, представлялось делом безнадежным.
На гениальную идею навел случай. Один из участников проекта iPodLinux показал Шнайдеру код команды, с помощью которой включался звук встроенного в плейер пьезоэлемента (озвучивающего особыми "кликами" работу с пунктами меню на экране). Немного поиграв с кодом, юноша обнаружил, что может изменять характер звучания пьезоэлемента. И тут Нильса осенило, что в принципе можно было бы модулировать звуки пищалки байтами из flashROM, то есть использовать пьезоэлемент как устройство вывода данных (поскольку эмпирически можно установить, как именно будет звучать байт каждого конкретного вида). Изготовив анализатор-декодер, Шнайдер последовательно опросил все адреса памяти флэш-загрузчика и, записав эти звуки, расшифровал содержимое flashROM.