Блокировка проверки чека приложений
Как известно, проверка наличия покупки в iOS приложениях осуществляется через проверку чека (подробнее здесь). Так же известно о возможности перенести кэш приложения, и, если в нём прописано наличие выполненной покупки, приложение может принять это за чистую монету (подробнее здесь), разблокировав покупку. Однако бывают ситуации, когда кэш с записью о наличии покупки перенесён, и приложение успешно принимает эту запись, но всё равно дополнительно выполняет проверку чека, после чего обнаруживает подвох, сбрасывая покупку. Что делать в такой ситуации? Кажется победа близка, премиум получен, но всё портит одна маленькая проверка. Если проверка происходит локально на устройстве, увы, тут пока ничего не придумали. Но в том случае, когда проверка осуществляется на сервере, решение есть, и заключается оно в блокировке запроса приложения к серверу. Если после неудавшейся проверки приложение не сбрасывает премиум, а решает попробовать позже, и мы достигаем желаемого результата. Конечно, позже оно тоже не сможет)) Но мы ему об этом не скажем 🤫
Содержание
Теория
Как же заблокировать запросы к серверу проверки? На iOS существуют специальные профили конфигурации, позволяющие устанавливать некоторые настройки, недоступные для изменения вручную. Раздел с профилями находится в настройках по пути "Основные" → "VPN и управление устройством".
В числе прочих настроек профили позволяют блокировать запросы любых приложений к адресам с указанными доменами. Например, приложение хочет запросить некую информацию c example.com, но профиль не даст ему это сделать. Так как наша цель — заблокировать проверку чека, требуется установить профиль, блокирующий доступ к домену проверки. Для большинства приложений эти домены будут разные.
Блокировка доменов происходит через локальное dns, которое нигде не отображается. Поэтому помните! Профиль действует, пока не включено никакое vpn, и с ним запускать взламываемые приложения нельзя.
На канале iOS Apps Cache готовые профили будут прикладываться к постам с приложениями, нуждающимися в блокировке проверки. Если вы не делаете взломы сами, пропустите шаги с созданием профиля и перейдите к его установке.
Создание профиля
Заблокировать можно далеко не каждую проверку. Очень часто случается так, что проверка покупок осуществляется на том же домене, с которого запрашиваются различные данные, необходимые для работы приложения. Например Songsterr по запросу "https://www.songsterr.com/webhook/appstore/sri/verify" проверяет покупки, а по запросу "https://www.songsterr.com/api/meta/439171" получает информацию о треке. Если заблокировать домен "www.songsterr.com", приложение работать не будет. Тем не менее, есть приложения, у которых проверка происходит на обособленном домене. Чаще всего это те, которые используют не свой, а сторонние сервисы для расшифровки чека, такие как RevenueCat или Buy-itunes. После того, как вы взломали приложение при помощи подмены и определили адрес, ответственный за проверку, можно перейти к блокировке.
Как же сгенерировать блокирующий профиль? В этом поможет специальная команда.
Запустите команду. Введите домены, которые необходимо заблокировать или ссылки их содержащие. Чтобы добавить несколько доменов в один профиль, нажимайте «+». Затем нажмите "Готово".
Чтобы сохранить домены в команде для автоматической подставке при каждом создании профиля, добавьте их во второе действие аналогичным образом.
Профиль сгенерируется и начнёт устанавливаться.
Установка профиля
Перейдите в "Настройки". Вверху на главной странице будет загруженный профиль.
Перенесите кэш приложения как обычно, после чего можете его использовать.