Возможности для обратного проектирования ipa-файла к его источнику


49

Я много просматривал, но не могу найти ресурсы для обратного проектирования ipa-файла (приложение iPhone). Есть ли способ перепроектировать файл ipa в его исходный код? Я попытался переименовать его в zip и открыть его через Winrar/Winzip, чтобы просмотреть его источник, но он не кажется полезным.

Каковы возможности декомпиляции/реверсирования файла ipa в его исходный код?

55

Если файл IPA прямо из iTunes/iPhone (без каких-либо изменений), раздел кода в двоичном формате (как указано Info.plist) зашифровывается с помощью FairPlay (собственный DRM от Apple). Если вы не уверены, вы можете проверить, установлен ли бит cryptid с помощью otool (см. this page).

otool -arch armv7 -l thebinary | grep crypt 

(где thebinary это двоичный исполняемый файл - см info.plist в приложения, CFBundleExecutable ключ)

Pre Дешифрование:

если Cryptid является 0, вы можете перейти дальше к Post Decryption раздел. В противном случае вам нужно будет расшифровать приложение. Типичный метод вкратце (с взломанным устройством IOS) является

  1. Установка otool, GDB и ldid из Cydia
  2. Установите ПНД по принципу разрешено устройства
  3. Выполнить otool на двоичном, чтобы получить такая информация, как размер зашифрованной полезной нагрузки
  4. запустить приложение и приостановить его непосредственно
  5. Использование GDB сбросить полезную нагрузку (начиная с 0x2000) gdb -p <process id> затем dump output.bin 0x2000 0xNNNN где NNNN является суммой beginnin г (0x2000) и размер
  6. полезной нагрузки Создать новый файл, используя первые 0x1000 байт исходного двоичного файла, и добавляется в файл дампа
  7. Используйте ldid подписать новый двоичный файл, и изменить Cryptid до 0 (так что iOS не расшифровывает расшифрованное приложение еще раз)

Существует множество инструментов сомнительных целей (пиратства), которые автоматизируют процесс, однако приведенное выше суть сущности процесса.

Сообщение дешифрование:

Вы можете начать обратный инжиниринг кода, когда у вас есть доступ к незашифрованной копии двоичного файла.

Одним из возможных инструментов является IDA Pro (бесплатная версия не поддерживает ARM). Он все еще может быть довольно грязным, поскольку большая часть кода iOS работает с objc_sendMsg(). Этот плагин IDA может помочь: https://github.com/zynamics/objc-helper-plugin-ida

Когда вы выполняете функции исправления, более простой способ работы (если вы знаете Objective-C) - использовать MobileSubstrate для подключения соответствующих функций. См. Dustin Howett's theos, если вы хотите попробовать этот метод.

Полезные ссылки:

Подробнее о процессе дешифрования: http://iphonedevwiki.net/index.php/Crack_prevention

Getting otool: https://apple.stackexchange.com/questions/21256/i-cant-find-otool-on-my-jailbroken-ipod

Подписание с ldid (так как оригинальная подпись сделана недействительной после редактирования) http://www.saurik.com/id/8

Для новых устройств

Некоторые из инструментов (gdb в моей базе) не работают надежно на iPhone 5S/iOS7. В настоящее время метод, который работает, заключается в использовании популярного программного обеспечения для взлома с открытым исходным кодом "Clutch". Процесс фактического взлома можно найти здесь: https://github.com/KJCracks/Clutch/blob/master/Classes/Binary.m

+5

Я использую Стефан Эссер «dumpdecrypted» dylib расшифровать бинарный файл. Я считаю, что его гораздо проще использовать, чем GDB - https://github.com/stefanesser/dumpdecrypted 05 апр. 132013-04-05 13:55:25


9

Если у вас есть взломанный чтения компакт-дисков, AppSec Labs' iNalyzer можно автоматизировать некоторые из этого процесса для вас, а также предоставит вам отличный способ для рассмотрения ИОС application.adding соответствующий репозиторий

Вы можете установить iNalyzer из Cydia после adding the appropriate repo.

По моему опыту, легче всего работать с созданными файлами проекта iNalyzer (которые вы будете копировать с iDevice после запуска iNalyzer) с Linux-машины, потому что для этого инструмента потребуется установить doxygen и Graphviz Dot для создания своего HTML-кода отчет.

AppSec Labs iNalyzer является основой для манипулирования IOS приложений, фальсификация параметров и методов; нет источников! Лаборатории AppSec iNalyzer нацеливает закрытые приложения, превращая болезненный черный ящик в автоматическое серое усилие.

AppSec Labs iNalyzer Автоматизирует ваши усилия по тестированию, предоставляя внутреннюю логику вашего целевого приложения iOS и корреляцию между скрытыми функциями. В AppSec Labs iNalyzer вы можете использовать ваши ежедневные веб-инструменты для проверки пера, такие как сканеры, прокси и т. Д. AppSec Labs iNalyzer поддерживает логику атаки и перенаправляет ее на целевое приложение для iOS. Нет более ручной BruteForce, Fuzzing, SQL-инъекции и другие утомительные ручные работы!


20

После decrypting an IPA file on a jailbroken iDevice, вы можете использовать гораздо более доступной альтернативой IDA Pro под названием Хоппер - на мульт-платформы дизассемблер для < $ 100.

http://www.hopperapp.com/

Он имеет поддержку для анализа IOS, исполняемых файлов (среди других) и даже приходит с возможностью преобразования сборки ARM псевдо-C.

enter image description here

  0

для использования на ubuntu после добавления репо, вам нужно установить libgvc5, добавить в ldconfig и выполнить как sudo 24 окт. 132013-10-24 10:34:03

  0

Но текущая версия (3) не поддерживает 64-битный ARM - очень плохо, действительно. 07 мар. 162016-03-07 08:53:29


9

Другие пользователи проделали хорошую работу с элементами этого вопроса, которые являются специфическими для формата ПНД. Что касается получения исходного кода двоичному объекту, см. this answer, почему это может быть сложнее, чем вы ожидаете (по сравнению, например, с декомпиляцией языка байт-кода).


6

Я бы порекомендовал проверку Frida. Это инструментарий для инструментов с открытым исходным кодом для iOS, Android, Windows, Mac и Linux.

Отъезд this tutorial, чтобы погрузиться, построив собственный отладчик за 5 минут, используя Frida и Qml. В последней части показано, как вводить код в приложение «Yo» и строить сетевые подключения на Картах Google.

+1

красиво написанное приложение, хотел бы изучить больше в нем, любой видеоурок? 30 июн. 142014-06-30 05:21:14

+1

Пока что, к сожалению, только документы на frida.re, но я планирую сделать больше сообщений в блогах и учебников в будущем. Не стесняйтесь бросать #Frida на irc.freenode.net, если у вас есть какие-либо вопросы, или расстрелять мне письмо на oleavr в gmail dot com. 30 июн. 142014-06-30 23:32:28


5

dumpdecrypted может автоматизировать дешифрование двоичного файла iOS. Кроме того, есть инструмент под названием iRET, который вы можете использовать, что автоматизирует много анализа и реверсирования для вас.


0

Rasticrac также может автоматизировать дешифрование (FairPlay DRM) двоичного кода iOS и очень прост в использовании!

Rasticrac

Rapid Advanced Secure осмысленные галлы Nuclear Признанный Cracker

Rasticrac является очень мощным инструментом для расшифровки приложения двоичных файлов IOS. Вы можете установить Rasticrac с Cydia, добавив следующий источник Repo в Cydia: http://cydia.iphonecake.com

  0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. 18 дек. 142014-12-18 10:15:04

+1

Что ?! Я не думаю, что это ссылка? (; 18 дек. 142014-12-18 13:27:04

  0

Не могли бы вы добавить еще немного контента, например, как это сделать? 21 дек. 142014-12-21 20:55:54

  0

Вы можете посмотреть этот блог, есть подробное описание: http://reverseengineeringapps.blogspot.de/ 22 дек. 142014-12-22 18:43:04