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