Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Тебе, вероятно, уже надоело читать статьи о программах для Windows? Попробуем исправить эту несправедливость и вспомним про Apple Macintosh. Тот самый, винтажный, на процессоре PowerPC. Сегодня мы будем препарировать написанное под эту древнюю технику приложение, чтобы дать ему вторую жизнь.
Может быть, ты помнишь, что мы уже обращались к этим компьютерам в статье «Липосакция для 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.sys
, который, как выяснилось, для запуска и не нужен. Поэтому лучше сразу скачать программу по ссылке из инструкции или поискать нормальный источник.
Для настройки эмулятора запускаем файл SheepShaverGUI.exe
, в конфигурационном окне видим семь вкладок. Не пугайся, все они нам не понадобятся. Начнем с первой (слева направо).
Пойдем снизу вверх. Mount drives — тома компьютера, которые будут расшарены для эмулятора, в нашем случае это C:
и D:
. Включение чекбокса Enable "My Computer" icon...
расшаривает и эту иконку тоже. Если ты не собираешься возиться с аппаратным дисководом, то лучше отключить связанные с ним поля, идущие выше, как это сделано у меня на скриншоте.
В нашей задаче он не потребуется, а вот от проблем, связанных с упомянутым выше драйвером cdenable.sys
, лучше держаться подальше. Тем не менее грузиться все‑таки лучше с виртуального 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 is Write Protected
.
Теперь по поводу создания и установки самого виртуального диска. Создать его можно (и нужно), нажав кнопку Create
на вкладке Volume
.
Источник: xakep.ru