#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 и расшифровывается встроенным крипто-движком при загрузке для выполнения.