В предыдущих статьях мы рассматривали трассировку методов при помощи Snoop-it во время работы конкретного приложения, что очень помогает установить алгоритм работы программы. Те же самые действия можно выполнить при помощи скрипта Logify.pl, написанного на Perl.
Автор: Prateek Gianchandani
В предыдущих статьях мы рассматривали трассировку методов при помощи Snoop-it во время работы конкретного приложения, что очень помогает установить алгоритм работы программы. Те же самые действия можно выполнить при помощи скрипта Logify.pl, написанного на Perl. Скрипт идет в комплекте с Theos. На входе logify.pl принимает заголовочный файл и генерирует код хука, который затем добавляется в твик. Кроме того, можно указать только имя класса (тогда будут отслеживаться все методы этого класса). Как только твик установлен и на устройстве вызывается метод, упоминаемый в хуке, информация о методе и его аргументах тут же отображается в системном журнале (syslog).
Перед написанием твика нужно получить заголовочные файлы для конкретного приложения, что можно сделать при помощи утилиты class-dump-z с опцией –H. Затем копируем сгенерированные заголовки на компьютер.
Рисунок 1: Выгрузка заголовочных файлов
Теперь на основе сгенерированных файлов при помощи скрипта Logify.pl мы будем создавать твик. Подопытным приложение все также будет Damn Vulnerable iOS application. Выбираем классы, у которых мы хотим отслеживать вызов методов. В нашем случае это будут следующие классы: ClientSideInjectionVC, JailbreakDetectionVC и DamnVulnerableAppUtilities.
Рисунок 2: Добавление классов в твик
На данный момент файл Tweak.xm выглядит так:
Рисунок 3: Содержимое файла Tweak.xm
Далее создаем шаблон твика и меняем Tweak.xm на содержимое, показанное на рисунке выше. Не забудьте указать в секции Filter идентификатор бандла для DVIA, поскольку мы работаем только с одним приложением. Если вы до этого ни разу не писали твиков, рекомендую ознакомиться с предыдущей статьей.
Рисунок 4: Создание нового твика
Собираем пакет.
Рисунок 5: Процедура сборки твика
Устанавливаем пакет на устройство и делаем респринг.
Рисунок 6: Процедура установка пакета на устройстве
Проверяем, установился ли твик на устройстве. Смотрим содержимое папки /Library/MobileSubstrate/DynamicLibraries.
Рисунок 7: Файлы, относящиеся к установленному ранее твику
Запускаем приложение DVIA. Удостоверьтесь, что устройство подсоединено к компьютеру. Далее зайдите в Xcode -> Window -> Organizer -> Devices, выберите устройство и кликните на Console. Вы увидите, что подгрузился твик DVIAMethodTracer.
Рисунок 8: События, возникающие во время запуска приложения DVIA
Теперь, когда вы будете работать с приложением, будут вызываться методы классов, которые мы отслеживаем при помощи Logify. Лог, показанный на рисунке ниже, отображает вызываемые методы вместе со значениями аргументов.
Рисунок 9: Отображение вызовов методов
Logify – очень полезный скрипт, позволяющий выяснить алгоритм работы приложения через отслеживание вызываемых методов.