Как декомпилировать приложения iOS?

#ios #decompiling #deb

#iOS #декомпиляция #deb

Вопрос:

Я хочу увидеть код приложения для iOS.

Приложение, которое я загрузил, называется .deb.

Первый вопрос: возможно ли установить.файл deb на iOS или я загрузил неправильный файл?

После распаковки файла .deb я получил несколько файлов, в том числе .nib, .storyboard и некоторые другие файлы.

Мой главный вопрос в том, как декомпилировать эти файлы .nib?

Я попытался декомпилировать эти файлы с помощью NibToXibConverter, но мне это не удалось.

Ответ №1:

Ответ на ваш первый вопрос:

Я думаю, вы загрузили не тот файл. .deb файлы для iOS являются общими для сообщества джейлбрейков, а не для приложений, я думаю, что все материалы Cydia упакованы в .deb «s». Если ваше приложение специально создано для джейлбрейка, вы можете попробовать установить его с помощью функции автоматической установки Cydia на взломанное устройство.

Ответ на ваш главный вопрос:

Это общая информация о декомпиляции и изменении приложений iOS (не специфичная для nibs, но вы все равно можете найти ее полезной).

Приложения iOS распределяются в .ipa архивах, которые представляют собой обычные zip-архивы. Обычно они содержат один исполняемый файл в виде файла Mach-O и такие ресурсы, как .plist звуки, изображения — все ресурсы, которые вы включаете в свой проект xcode. Декомпиляция исполняемого файла возможна только на взломанном iDevice, потому что он зашифрован специально для текущего устройства, а волшебный ключ для расшифровки двоичного файла записывается внутри процессора устройства, и, насколько я знаю, программного способа считывания этого ключа нет. Система шифрования здесь называется FairPlay.

Вкратце описано, что один из способов расшифровать этот двоичный файл — установить приложение на взломанное устройство и запустить его из командной строки с помощью отладчика (gdb), который вы можете загрузить с Cydia. Вам нужно где-то установить точку останова, и когда выполнение вашего кода приостанавливается в точке останова, вы выполняете дамп оперативной памяти устройства — и это ваша расшифрованная ячейка.

Итак, когда у вас есть расшифрованный двоичный файл, вы можете запустить один инструмент под названием «class-dump» и получить информацию для объявленных классов и их методов, если приложение написано в Objective C. Как только вы узнаете эту информацию, вы можете изменить реализацию данного метода из некоторого класса, используемого в вашем приложении, используя «Cydia Substrate, он же «Мобильный субстрат». Фактически, именно так выполняются все настройки iOS для взлома. По сути, вы подключаете вызов метода, и когда этот метод вызывается, он использует вашу реализацию. Кроме того, ваша реализация может вызывать исходную реализацию, и это действительно полезно, если вы хотите внести небольшое дополнение в код.

Я не уверен, возможно ли это в Swift, но если вы имеете дело с гибридным приложением, подобным тем, которые выполняются с помощью cordova, phonegap и т. Д., Тогда вы можете увидеть весь его исходный код javascript, потому что он сохраняется как ресурс внутри файла «ipa». Кроме того, вы можете изменить этот код javascript напрямую, если у вас взломанное устройство, и найти, где установлено приложение в файловой системе (обычно /var/containers/Bundle/Application/uuid_for_your_app/ ). Тем не менее, я думаю, что нет способа получить эту исправленную версию и распространить ее (поправьте меня, если я ошибаюсь).

Комментарии:

1. Хорошая запись, но шифрование для каждого устройства не совсем корректно, обратите внимание, что IPA могут быть загружены в iTunes, а затем загружены на несколько устройств. Исполняемый файл шифруется с помощью ключа Apple и расшифровывается встроенным крипто-движком при загрузке для выполнения.