[Инструкция] Взлом Приложений из 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 на Ваши действия, перезагрузите телефон и повторите попытку.

 

Далее делаем перезагрузку.

Инфо о гаджетах

Контакты