Войти
  1. ВКонтакте
  2. Facebook
  1. »
  2. »
  3. »
  4. Взлом приложений из App Store
Новые публикации Скрыть панель справаПоказать панель справа

Взлом приложений из App Store

Активный участник
  1. Офлайн
  2. Администраторы
  3. 41 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 1 отправлено 13:04, 15.02.2011
Полная инструкция: Как самому взломать приложения из 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 0x2000 {addr2}
где addr2 = (cryptsize + 8192) -> HEX (!) = 798720 + 8192 = 806912 = 0xC5000
вводим:
dump memory dump.bin 0x2000 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;
Берем оригинальный файл программы и ЗАМЕЩАЕМ в нем кусок со смещения 0x1000 файлом dump.bin;
Осталась самая малость - подправить заголовок. Ищем по смещению ~0x800 в результирующем файле
байтики вида 0x01 0x00 и заменяем на 0x00 0x00
(проще говоря, ищем в окрестностях 0x800 одинокую единичку и заменяем её на ноль);

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

8) Завершение.
Теперь осталось сделать перезагрузку и все!
 
Перейти
Найти

Доступ закрыт.

  1. Вам запрещено отвечать в темах данного форума.

Последние темы

Изменения статуса

  1. Никто не менял личный статус.

Реклама