special

This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.

Взлом Приложений из App Store [Инструкция]

Полная инструкция: Как самому взломать приложения из App Store! Читаем инструкцию далее! А кому лень делать это самому, тот может скачать уже готовые взломанные приложения тут!

1) Приготовления.
Вам понадобится:
- iPhone / iPod Touch с прошивкой 2.0, джейлбрекнутый, с установленной Cydia;
- Запустите Cydia и обновите всё, что она попросит для своего обновления;
- Дополнительно (в той-же Cydia) установите:
а) Open SSH;
б) GNU Debugger for iphone;
в) iPhone 2.0 Toolchain;
- На компе (я использую PC с OS Windows XP SP3), нужен какой-нибудь терминал.
Я использую PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
Терминал должен быть настроен, Вы должны зайти в тело (root@alpine);
- Ну и непосредственно взламываемое приложение. Оно должно быть куплено в
AppStore и нормально работать на момент крака.
Все приготовления окончены. Приступаем:

2) Сбор информации.
В терминале (все на ПК) набираем:
otool -l {путь к Вашей программе}
например:
otool -l /var/mobile/Applications/F02B7479-78DH-4AA2-B33F-D27E098CB478/Test.app/Test
Как подсмотреть путь я пописывать здесь не буду, Вы должны сами его определить и запомнить.
Вам вывалится КУЧА инфы, среди которой ищем примерно следующие строчки:
Load command 9
cmd LC_ENCRYPTION_INFO
cmdsize 20
cryptoff 4096
cryptsize 798720
cryptid 1
Т.е. секцию 9 Load Command - LC_ENCRYPTION_INFO.
Записываем следующие значения:
cryptoff - смещение (dec) от начала файла с которого начинаются зашифрованные данные;
cryptsize - длина зашифрованных данных;
cryptid 1 - говорит о том, что в файле есть зашифрованные данные (если тут стоит 0,
то значит все дальнейшие шаги, до самой подписи, можно пропустить);

3) Запуск жертвы.
Запустите Ваше приложение на теле. Старайтесь не ходить дальше начального меню;
Теперь нам надо вычислить ID процесса. Для этого в терминале на ПК наберите:
ps ax
Высветится большой список процессов. Ищем в нем знакомый нам процесс (по пути, там будет
что-то вроде):
721 ?? s 0:00.00 /var/mobile/Applications/F02B7479-78DH-4AA2-B33F-D27E098CB478/Test.app/Test
так вот 721 это и есть нужный нам ID. Запоминаем его.

4) Сдирание шкуры.
Запустите GNU Debugger с опцией подключения к процессу:
gdb -p PID

где PID - ID процесса полученный на этапе 3. пример:
gdb -p 721
Дебаггер загрузится в жертву и расположитя в ней. ВНИМАНИЕ все это время программа-жертва
должна быть открыта на теле.
Теперь надо сделать дамп командой:
dump memory dump.bin 0?2000 {addr2}
где addr2 = (cryptsize + 8192) -> HEX (!) = 798720 + 8192 = 806912 = 0xC5000
вводим:
dump memory dump.bin 0?2000 0xC5000
Лезем по SSH в /var/root/ и вытаскиваем полученный dump.bin на ПК.
Закрываем Debugger (quit) и закрываем жертву на теле. Больше они нам не понадобятся.

5) Препарирование жертвы.
Последующие действия производятся на ПК в Вашем любимом Hex-редакторе. Я пользовался HIEW.
Нам понадобится:
- Оригинальный файл программы (/var/mobile/Applications/F02B7479-78DH-4AA2-B33F-D27E098CB478/Test.app/Test);
- dump.bin, полученный в п.5;
Берем оригинальный файл программы и ЗАМЕЩАЕМ в нем кусок со смещения 0?1000 файлом dump.bin;
Осталась самая малость - подправить заголовок. Ищем по смещению ~0?800 в результирующем файле
байтики вида 0?01 0?00 и заменяем на 0?00 0?00
(проще говоря, ищем в окрестностях 0?800 одинокую единичку и заменяем её на ноль);

6) Выкачиваем все из оригинальной папки приложения
(пример: /var/mobile/Applications/F02B7479-78DH-4AA2-B33F-D27E098CB478/Test.app/Test)
и закачиваем /Test.app в /Applications или /stash/Applications.* (у кого где работает)
удаляем папку SC_Info (она более не нужна),
переписываем подготовленный в п.5 запускной файл программы,
прописываем права 755.

7) Подписывание приложения.
Нам осталось только подписать приложение на новом месте:
ldid -S myapp
пример:

ldid -S /Applications/Test.app/TestЕсли в какое-то время, терминал начал отвечать Killed на Ваши действия, перезагрузите телефон и повторите попытку.


Created/Updated: 25.05.2018

';>