Может быть, ты помнишь, что мы уже обращались к этим компьютерам в статье «Липосакция для fat binary. Ломаем программу для macOS с поддержкой нескольких архитектур», но тогда мы разбирали приложение (точнее, библиотеку) в статике, причем без доступа к Mac, на компьютере с Windows. В этот раз мы не только изучим код программы, но и попробуем проследить за ее поведением в естественной среде обитания.
Не переживай, Mac (да еще и такой древний) тебе для этого не понадобится, мы снова не будем изменять нашей любимой операционной системе, тем более, как я уже говорил в предыдущих статьях, Mac не шибко приспособлен для реверса и отладки приложений. Поэтому все действия мы станем проводить в дизассемблере и эмуляторе исключительно в Windows.
Итак, постановка задачи. Имеется инсталляционный пакет некоего винтажного приложения для Mac OS 9.0.4. Приложение должно работать со сканирующим железом конца прошлого столетия при наличии авторизации в процессе загрузки. Поскольку за давностью лет это железо пережило и совместимый Mac с установленной на нем Mac OS 9, и авторизацию, но работать с ним таки надо, попробуем дать ему вторую жизнь подручными средствами.
Начнем с эмулятора, на котором можно нормально запустить нашу программу в Windows. Надо сказать, я специально остановился на столь экзотической системе, чтобы тебе было не скучно. Такие популярные эмуляторы под Windows, как VMware и VirtualBox, не поддерживают устаревший процессор PowerPC, поэтому выбирать нам придется из более причудливых вариантов. Нагуглив список поддерживающих этот процессор эмуляторов (а он негуст: Basilisk, QEMU, SheepShaver), находим в нем самое эпатажное название (SheepShaver — овечий депилятор) и начинаем возиться с установкой.
Несмотря на весьма широкую распространенность, а также обилие инструкций и обсуждений, установить эмулятор и заставить работать в нем приложение было непросто. Первый пришедший в голову способ — зайти на «Рутрекер», скачать оттуда готовый комплект и установить по тамошней инструкции — никуда не годится, о чем красноречиво свидетельствует множество беспомощных и безответных комментов под раздачей.
Способ более серьезного человека — зайти на специализированный сайт Emaculation.com и воспользоваться размещенной там инструкцией. Поскольку в ней тоже множество неочевидных и контринтуитивных подводных камней, продублирую ее здесь с собственными комментариями.
Для начала, конечно же, надо скачать сам SheepShaver. Можно воспользоваться стянутой с торрента версией, но лично у меня она вызывала устойчивую ошибку отсутствия драйвера cdenable.
, который, как выяснилось, для запуска и не нужен. Поэтому лучше сразу скачать программу по ссылке из инструкции или поискать нормальный источник.
Для настройки эмулятора запускаем файл SheepShaverGUI.
, в конфигурационном окне видим семь вкладок. Не пугайся, все они нам не понадобятся. Начнем с первой (слева направо).
Пойдем снизу вверх. Mount drives — тома компьютера, которые будут расшарены для эмулятора, в нашем случае это C:
и D:
. Включение чекбокса Enable
расшаривает и эту иконку тоже. Если ты не собираешься возиться с аппаратным дисководом, то лучше отключить связанные с ним поля, идущие выше, как это сделано у меня на скриншоте.
В нашей задаче он не потребуется, а вот от проблем, связанных с упомянутым выше драйвером cdenable.
, лучше держаться подальше. Тем не менее грузиться все‑таки лучше с виртуального CD-ROM, поскольку в исходном состоянии эмулятор девственно чист и нам потребуется установить на него систему с родного образа диска. Вот так мы и дошли до самого главного — Volumes, списка виртуальных томов, на которых будет храниться система и прочая информация «родных» дисков эмулированной Mac OS.
В верхней строке этой таблицы нужно указать ISO-образ загрузочного CD, с которого эмулятор грузит систему (ты же не забыл, что изначально в эмуляторе нет ОС?). Некоторые пользователи советуют не заморачиваться с полной установкой системы, а грузить ее прямо с диска (на популярном в России торренте или на Redundantrobot можно найти образы загрузочных дисков, содержащих минимальную версию macOS, позволяющую эмулятору загрузиться и почти полноценно работать), но нормальные хакеры, вроде нас c тобой, с негодованием отвергают это трусливое предложение и скачивают полный установочный дистрибутив Mac OS 9.0.4, например с Winworldpc, Macintoshrepository или Macintosh Garden OS Collection.
Перед тем как прописать образ диска в эмулятор, не забудь установить атрибут Read Only файлу образа ISO, иначе при загрузке можно запросто словить вот такую ошибку (загрузочный CD должен быть защищен от записи, ведь логично?).
Кстати, именно поэтому я и советовал не грузиться с усеченного образа системы на виртуальном дисководе, а честно устанавливать ее на виртуальный диск — если потом понадобится устанавливать серьезный инсталляционный пакет в эмулятор, то при попытке прописать что‑либо в системный каталог (а все серьезные инсталляционные пакеты делают это) возникает внезапная ошибка Diskette
.
Теперь по поводу создания и установки самого виртуального диска. Создать его можно (и нужно), нажав кнопку Create
на вкладке Volume
.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее