Основа стабильности любой операционной системы — это ограничение доступа к важным файлам , от которых зависит работа компьютера, или попросту «защита от дурака». В Mac OS X, как во всех остальных *nix-системах, эта защита реализована через права доступа, группы и владельцев объектов. Прочитать обо всём этом вы можете в о Терминале Mac OS X, а сегодня речь пойдёт не столько о защите, сколько о способах её преодоления.
Зачем это нужно? Рано или поздно любой пользователь Мака сталкивается с необходимостью что-нибудь отредактировать в настройках системы или отдельных программ. Ну а владельцы хакинтошей сталкиваются с этой необходимостью чуть ли не каждый день. Как же обойти хитрую систему присвоения прав доступа, чтобы что-нибудь поменять в системе исключительно ради благой цели?
Стандартным форматом настроек Mac OS X и программ для неё является PLIST. Это обычный текстовый файл, который по умолчанию откроется в текстовом редакторе TextEdit. Теперь представьте, что вы открыли такой файл, внесли все нужные изменения и теперь хотите сохранить его. Но не тут-то было! Вы увидите вот такую ошибку:
Вариант у вас только один — сохранить файл ещё где-нибудь. Но это очень и очень плохой вариант. Во-первых, вы потом не сможете скопировать этот файл в его исходную папку. Система просто не даст вам перезаписать имеющийся файл (и будет права). Ну а если вы удалите старый файл и только затем скопируете в ту же папку отредактированную копию, то она скопируется, но будут нарушены права доступа. А это грозит вам самыми загадочными и непредсказуемыми глюками.
Именно поэтому мы рассмотрим несколько других вариантов.
1) Редактирование через Терминал
Терминал даёт пользователю возможность выполнять действия от имени корневого администратора. А это означает, что вам будет подвластен каждый файл компьютера. Надеемся, нет смысла предупреждать вас об опасности наличия такой власти;)
В самом Терминале есть несколько встроенных средств редактирования, например, команды nano и vi . Воспользоваться ими проще простого. Сначала нужно приобрести права root-администратора. Введите команду:
Затем вслепую введите пароль и нажмите Enter.
А теперь достаточно ввести:
nano путь к файлу
Например:
nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Или можно ввести nano и пробел, а потом перетащить редактируемый файл в окно Терминала. Останется нажать Enter. Работа с командой vi осуществляется точно так же.
Но редактировать файл в таком режиме — удовольствие не из приятных. Судите сами: никакого управления мышью тут не предвидится, и даже курсор придётся передвигать с клавиатуры.
Полезный совет: чтобы выйти из nano, закройте Терминал или нажмите на клавиатуре Ctrl+X.
2) Запуск текстового редактора с правами администратора
Второй способ более элегантен. Он позволит вам пользоваться обычными программами Mac OS X для правки текста, но запущенными от имени администратора. В этом случае никаких ошибок с правами доступа не возникнет.
Запустите Терминал, введите sudo -s и пароль. Затем нужно будет ввести громоздкую конструкцию типа:
/Applications/TextEdit.app/Contents/MacOS/TextEdit
Заметьте: через Терминал нужно запускать не саму программу (т.е. файл TextEdit.app), а её бинарник, упрятанный внутри программы, в подпапке Contents/MacOS .
После этого TextEdit отлично сможет работать с любыми файлами, но только до первого закрытия программы.
3) Сторонние специализированные программы
Не можем не порекомендовать текстовый редактор . Это продвинутая версия TextMate, которая делалась в расчёте на программистов, но будет полезна на каждом Маке (а на хакинтоше тем более). К вашим услугам — наглядное форматирование текста, работа с самыми разными кодировками и главное — поддержка работы с защищёнными файлами без дополнительных махинаций в Терминале.
При сохранении защищённого файла TextMate предложит вам ввести пароль, и без проблем сохранит все изменения.
Впрочем, цена — явно не достоинство TextMate. После окончания 30-дневного триала с вас попросят 39 евро . Разработчики оправдываются, указывая на огромное количество встроенных модулей по обработке разных скриптов и языков программирования:
Только вот зачем они рядовому пользователю? Если же цена вас не отпугивает, то можете скачать TextMate по ссылке ниже.
Самой частой причиной проблем с раскрытием файла PLIST является просто отсутствие соответствующих приложений, установленных на Вашем компьютере. В таком случае достаточно найти, скачать и установить приложение, обслуживающее файлы в формате PLIST - такие программы доступны ниже.
Поисковая система
Введите расширение файла
Помощь
Подсказка
Необходимо учесть, что некоторые закодированные данные из файлов, которые наш компьютер не читает, иногда можно просмотреть в Блокноте. Таким образом мы прочитаем фрагменты текста или числа - Стоит проверить, действует ли этот метод также в случае файлов PLIST.
Что сделать, если приложение со списка уже было установлено?
Часто установленное приложение должно автоматически связаться с файлом PLIST. Если это не произошло, то файл PLIST успешно можно связать вручную с ново установленным приложением. Достаточно нажать правой кнопкой мышки на файл PLIST, а затем среди доступных выбрать опцию "Выбрать программу по умолчанию". Затем необходимо выбрать опцию "Просмотреть" и отыскать избранное приложение. Введенные изменения необходимо утвердить с помощью опции "OK".
Программы, открывающие файл PLIST
Mac OS
Почему я не могу открыть файл PLIST?
Проблемы с файлами PLIST могут иметь также другую почву. Иногда даже установление на компьютере программного обеспечения, обслуживающего файлы PLIST не решит проблему. Причиной невозможности открытия, а также работы с файлом PLIST может быть также:
Несоответственные связи файла PLIST в записях реестра
- повреждение файла PLIST, который мы открываем
- инфицирование файла PLIST (вирусы)
- слишком маленький ресурс компьютера
- неактуальные драйверы
- устранение расширения PLIST из реестра системы Windows
- незавершенная установка программы, обслуживающей расширение PLIST
Устранение этих проблем должно привести к свободному открытию и работе с файлами PLIST. В случае, если компьютер по-прежнему имеет проблемы с файлами, необходимо воспользоваться помощью эксперта, который установит точную причину.
Мой компьютер не показывает расширений файлов, что сделать?
В стандартных установках системы Windows пользователь компьютера не видит расширения файлов PLIST. Это успешно можно изменить в настройках. Достаточно войти в "Панель управления" и выбрать "Вид и персонализация". Затем необходимо войти в "Опции папок", и открыть "Вид". В закладке "Вид" находится опция "Укрыть расширения известных типов файлов" - необходимо выбрать эту опцию и подтвердить операцию нажатием кнопки "OK". В этот момент расширения всех файлов, в том числе PLIST должны появится сортированные по названию файла.
Некоторые iOS-приложения проверяют версию операционной системы на устройстве. Недавно, во время тестирования одного приложения, я как раз и столкнулся с подобной проверкой. Если версия iOS была ниже 7.1, приложение не устанавливалось, и вываливалась ошибка.
В этой статье будут рассмотрены следующие темы:
- Изменение версии iOS в файле SystemVersion.plist.
- Изменение версии в plist-файле, находящимся в пакете приложения.
- Использование утилиты «iOS-ssl-Kill switch» для обхода валидации сертификата.
Изменение версии iOS в файле SystemVersion.plist
Версия iOS может быть изменена (на джейлбрейковом устройстве) в два простых шага посредством изменения соответствующего значения в файле SystemVersion.plist:
- Подключаемся к джейлбрейковому устройству по протоколу SSH (или используем ifile, доступный в cydia) для просмотра содержимого системной директории.
- Изменяем значение "ProductVersion" в файле "/System/Library/CoreServices/SystemVersion.plist".
Рисунок 1: Содержимое файла SystemVersion.plist
Этот трюк позволяет изменить значение, отображаемое в разделе "Settings/General/about". Однако метод сработает лишь для тех приложений, которые проверяют версию в файле SystemVersion.plist. Если после изменения версии, приложение все равно отказывается работать, используйте второй метод.
Изменение версии в plist-файле, находящимся в пакете приложения
Второй метод, позволяющий изменить версию, состоит из трех простых шагов:
- Переименовываем файла ipa в.zip и распаковываем архив.
- Изменяем значение "minimum ios version" в файле info.plist, который обычно находится в папке \Payload\appname.app.
- Упаковываем архив и переименовываем его обратно в ipa. [Примечание: некоторые приложения проверяют значение "minimum ios version" в других plist-файлах, находящихся в пакете ].
Рисунок 2: Содержимое файла info.plist
После изменения plist-файлов нарушается подпись пакета. Для решения этой проблемы, необходимо зарегистрировать IPA при помощи утилиты из этой статьи .
Некоторые приложения проверяют версию iOS во время установки. Когда пользователь устанавливает приложение при помощи iTunes или xcode, используя IPA, происходит проверка версии iOS, запущенной на устройстве, и если версия ниже, чем требуется, появляется ошибка.
Рисунок 3: Ошибка, возникающая при установке приложения через xcode
Подобная проверка также обходится в несколько шагов:
- Переименовываем файл.ipa в.zip и извлекаем папку.app.
- Копируем папку.app туда, где установлены iOS приложения (/root/application) при помощи любого SFTP-клиента (например, WinSCP).
- Подключаемся к устройству через SSH, заходим в папку, где установлен IPA, а затем ставим права на запуск у папки.app (chmod -R 755 или chmod -R 777). Альтернативный способ - кликнуть правой кнопкой мыши на папке.app в WinSCP и изменить свойства директории, установив соответствующие права.
- После перезапуска iOS устройства приложение будет успешно установлено.
Рисунок 4: Установка новых прав для директории
Обход валидации сертификата
Некоторые приложения проверяют сертификат для предотвращения проксификации трафика при помощи утилит наподобие Burp. Обычно в бинарном файле приложения намертво зашит клиентский сертификат. Сервер проверяет этот сертификат, и если валидация заканчивается неудачно, возникает ошибка. Более подробно об этом можно почитать в другой моей статье в соавторстве со Стивом Керном.
Иногда бывает трудно извлечь сертификат из приложения и установить его внутрь прокси. Альтернатива – использовать утилиту ios-ssl-kill-switch. ios-ssl-kill-switch цепляется к Secure Transport API (самый низкий уровень) и отключает проверку сертификата. Большинство проверок используют NSURLConnection на более высоком уровне. Больше подробностей можно узнать .
Проверка сертификата обходится в несколько шагов:
- Устанавливаем утилиту kill-ssl-switch .
- Все зависимые пакеты должны быть установлены заранее.
- Перезапускаем устройство или перезапустите SpringBoard при помощи следующей команды "killall -HUP SpringBoard".
- Устанавливаем опцию Disable Certificate Validation в разделе "Settings/SSL Kill Switch".
- Перезапускаем приложение, после чего трафик должен перехватываться успешно.
Привязка сертификата (Certificate pinning) обходится путем подцепления к API, выполняющего валидацию сертификата, и постоянного возвращения «истины» при проверке. Для решения этой задачи вполне подойдет фреймворк Mobilesubstrate. Существует несколько других полезных утилит для отключения привязки, например "Trustme" и "Snoop-it".
Рисунок 5: Отключение проверки сертификата в SSL Kill Switch
- Расширение (формат) - это символы в конце файла после последней точки.- Компьютер определяет тип файла именно по расширению.
- По умолчанию Windows не показывает расширения имен файлов.
- В имени файла и расширении нельзя использовать некоторые символы.
- Не все форматы имеют отношение к одной и той же программе.
- Ниже находятся все программы с помощью которых можно открыть файл PLIST.
В интернете очень много программ, позволяющих редактировать исходный код другой программы, файла и др. Однако большинство из подобных программ являются всего лишь текстовым редактором наподобие блокнота. Отличаются они от вышеуказанного редактора лишь тем, что имеют подсветку синтаксиса. Однако в некоторых случаях, такого функционала программы оказывается недостаточно. Программисту бывает необходимо быстро находить различные части документа. И вот, наконец-то, в появилась программа, позволяющая решить эту проблему. Программа называется SynWrite. Её отличительная особенность – наличие навигационной панели с деревом, котор...