Ман пригодится для многих твикоделов и хакеров,тк позволяет расшифровать исполняемый файл iOS приложения для изучения в дизассемблере,поиске уязвимостей и просто снятии дампа заголовочных файлов для дальнейшего изучения.
Cейчас я просто покажу расшифрование на примере Яндекс.Музыка(выбор пал случайно:)) и как получить дамп заголовочных файлов.
Первым делом подключаемся к девайсу по ssh

Далее получаем путь к приложению YandexMusic

У меня нет нужных утилит на iPad,так что я буду все через утилиты Mac)
Выгружаем исполняемый файл на компьютер.

Выводим нужную нам информацию о бинарнике

Возвращаемя к девайсу
Подключаем к работе gdb и вводим команды

Далее нам надо сделать дамп памяти приложения.
адрес начала считается так: cryptoff+0x1000 (в данном случае 0x2000)
адрес конца так: cryptoff+cryptsize+0x1000 (в данном случае 0xA1000)
После создания дампа вводим kill,затем q
Теперь выгружаем дамп на компьютер

После выгрузки копируем расшифрованный код обратно в бинарник
значение для seek высчитывается просто.берем оффсет архитектуры(в данном случае 0) и прибавляем cryptoff(в данном случае 4096)

После этого открываем готовый файл в любом Hex редакторе и ищем "/usr/lib/dyld" (без кавычек),затем
ищем ближайший байт со значением 0x01 и меняем на 0x00,сохраняем,и если все правильно,то
cryptid будет 0 если ввести команду
Так расшифровывается исполняемый файл iOS приложения.
Чтобы снять дамп хедеров,нужна утилита class-dump;
Вводим class-dump -H YandexMusic и на выходе получаем дамп.
Удачи!
Cейчас я просто покажу расшифрование на примере Яндекс.Музыка(выбор пал случайно:)) и как получить дамп заголовочных файлов.
Информация
Нам нужно:
1)GDB последней версии(из Cydia не брать,там он поломан).Можно сделать самому или заюзать мой GDB под armv7 для iOS 4.3+
2)Установленный SSH на девайсе
Хорошо если стоят otool,plutil,file и grep,если нет,то то же самое надо на компе.
1)GDB последней версии(из Cydia не брать,там он поломан).Можно сделать самому или заюзать мой GDB под armv7 для iOS 4.3+
2)Установленный SSH на девайсе
Хорошо если стоят otool,plutil,file и grep,если нет,то то же самое надо на компе.
Первым делом подключаемся к девайсу по ssh

Далее получаем путь к приложению YandexMusic
ls -ld /var/mobile/Applications/*/YandexMusic.app |

У меня нет нужных утилит на iPad,так что я буду все через утилиты Mac)
Выгружаем исполняемый файл на компьютер.

Выводим нужную нам информацию о бинарнике

Информация
cryptoff -определяет оффсет,с которого начинается зашифрованная часть(в данном случае 0x1000)
cryptsize -определяет размер зашифрованной части
cryptid -определяет,зашифрованы данные или нет
cryptsize -определяет размер зашифрованной части
cryptid -определяет,зашифрованы данные или нет
Возвращаемя к девайсу
Подключаем к работе gdb и вводим команды
set sharedlibrary load-rules ".*" ".*" none set inferior-auto-start-dyld off set sharedlibrary preload-libraries off rb doModInitFunctions r |

Далее нам надо сделать дамп памяти приложения.
dump memory <имяфайла> <адресначала> <адресконца> |
адрес конца так: cryptoff+cryptsize+0x1000 (в данном случае 0xA1000)
После создания дампа вводим kill,затем q
Теперь выгружаем дамп на компьютер

После выгрузки копируем расшифрованный код обратно в бинарник
dd seek= 4096 bs=1 conv=notrunc if=./yandex_dump.bin of=./YandexMusic |
значение для seek высчитывается просто.берем оффсет архитектуры(в данном случае 0) и прибавляем cryptoff(в данном случае 4096)

После этого открываем готовый файл в любом Hex редакторе и ищем "/usr/lib/dyld" (без кавычек),затем
ищем ближайший байт со значением 0x01 и меняем на 0x00,сохраняем,и если все правильно,то
cryptid будет 0 если ввести команду
otool -l YandexMusic | grep crypt |
Так расшифровывается исполняемый файл iOS приложения.
Чтобы снять дамп хедеров,нужна утилита class-dump;
Вводим class-dump -H YandexMusic и на выходе получаем дамп.
Удачи!
Раздел:
Development
Автор:
Антон Титков
5 июня 2012, 14:34




Ответы