Пользователь
0,0
рейтинг
5 августа 2014 в 20:06

Разработка → Лечение VKApp для iPhone

Здравствуйте дамы и господа. Сегодня я хочу поговорить о том, как происходил процесс лечения приложения «ВКонтакте» для iOS.

Всем известно, что в новом обновлении появилась платная музыка и странички, которые не отображаются с клиента ввиду 18+ контента. Это было сделано для того, чтобы приложение прошло модерацию в «AppStore».
Собственно эти «нововведения» вызвали шквал негативных эмоций в сторону компании. Следовательно и мне это не понравилось. Ладно если бы там было что то вроде подписки примерно как в «Google Play Music», я бы даже не задумался о «лечении» приложения.

Приступим к самому процессу.
Первым делом я решил узнать, что же изменилось то в самых запросах к vkapi, поэтому вооружившись снифером я начал слушать куда стучится приложение.

При поиске аудиозаписей запрос выглядел примерно так:
скриншот снифера

Немного подумав мне пришла мысль, что скорее всего причина в «User-Agent'e». Так оно и есть. Если заменить, к примеру, «com.vk.vkclient/13» на «com.vk.vkclient 13» аудиозаписи отлично ищутся. Дело осталось за малым, внести модификацию в клиент.

Так как я человек далекий от программирования на ObjC, я не нашел более логичного варианта как открыть пакет приложения в архиваторе и вытащить исполняемый файл для дальнейшего изучения и манипуляций в HEX редакторе.

Обычным поиском находим упоминания «User-Agent». Видим что то похожее на это:

HxD

Для «лечения» достаточно заменить всего лишь один байт
55 73 65 72 2D 41 67 65 6E 74 00 25 40 20 25 40 20 28 25 40 2C 20 25 40 20 25 40 2C 20 25 40 2C 20 53 63 61 6C 65 2F 25 66 29


В итоге мы имеем «User-Agent: com.vk.vkclient 13». Запаковываем все обратно и ставим на свой девайс и имеем полностью отвязанное приложения от iTunes и с открытым 18+ контентом.

вылеченная версия

PS: Про версии с Offline режимом я говорить не буду, там такой же принцип действия, как и в этом лечении.
Артём Дизычев @nullch
карма
11,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (19)

  • +1
    Осталось только залить его туда. А для этого, насколько я разбираюсь в iДевайсах, нужен джейл.
    Ну а если есть джейл — то что мешает поставить более раннюю версию, в которой всё работало?
    • +1
      отсутствие нового функционала?
      • +14
        Название оператора залечили на отлично.
    • 0
      Как вариант можно получить сертификат разработчика и подписать приложение этим сертификатом.
      • 0
        разве уже собранный и подписанный бинарник можно переподписать?
    • 0
      Не обязательно. Есть неплохие программы Tongbu и PP Helper от добрых китайцев, которые позволяют ставить приложения без джейла. Там же можно поставить старую версию вк.
      Из минусов: приложения иногда перестают работать, тогда надо нажимать кнопочку Fix.
  • –1
    В своё время установил vk.com/musicvkios, и до сих пор бед не знаю.
    • –1
      Самый лучший плеер вк, который когда либо был в аппстор. Разработчик реализовывал почти все реквесты от пользователей.
  • +2
    «Аллах LTE»?
  • НЛО прилетело и опубликовало эту надпись здесь
    • +3
      Автор нашел требуемую строку «com.vk.vkclient/13» и поменял в ней слеш 2C на пробел 20. Само изменение строки user-agent было проверено опытным путем через ручное формирование запроса
  • +1
    Будет вообще замечательно, если разработчики в одной из следующих версий забудут отключить возможность войти в режим разработчика с разблокировкой экспериментальных функций, в том числе и user-agent, а инструкция по входу в него случайно где-то всплыла бы.
  • +2
    Удивительно, что разработчики игнорят iPad-ы. Skype, например, не обновлялся давным давно, когда как для iPhone вышла новая мажорная версия и даже обзавелась крупным обновлением.
    Приложения ВКонтакте на iPad вообще нет уже несколько месяцев (зобанено) и всем плевать. И это при том, что для iPhone приложение-таки вернули, да еще и полгода назад выпустили iOS7-like версию.
    Объясните мне, пожалуйста, почему так?
    • 0
      Не думаю, что совсем уж плевать.

      Вспомните, что приложение VK для iOS забанили примерно в то же время, когда в Вконтакте основательно поменялась команда (гендиректор, еще ряд людей) — люди, которые могут решать проблемы с Apple не появляются из ниоткуда.

      Приложение для iPhone вернули только 19 июля, когда VK договорились с Apple о решении проблемы с нелицензионным контентом (эта дикая схема с iTunes). Надеюсь, проблема с приложением для iPad также решится в ближайшее время.
  • –1
    А каким образом вы получили такое читабельное содержимое пакета? У меня в основном каша (в различных кодировках), и User-Agent в этой каше не встречается.
    Скрытый текст
    image

    Я же правильно понимаю, что под «пакетом» имеется в виду .ipa-файл?
    • +1
      .ipa — это архив, в нём находится исполняемый файл.
  • 0
    Распаковал винраром ipa-файл, открыл винхексом исполняемый файл по адресу VK 2.1\Payload\vkclient.app\vkclient
    Там нет строки user-agent, самое большее — несколько упоминаний vkclient. Куда копать?
    Иллюстрация: vk.cc/2VxgUI
    • 0
      Я забыл уточнить немаловажный фактор. Перед всеми манипуляциями я отвязывал приложение от iTunes. Это делает какой-то твик, он же «декриптит» сам бинарик. Погуглите на эту тему.
      • 0
        Так а обратно потом подписать можно будет? Джейла не держу.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.