<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Pro хаки</title><generator>teletype.in</generator><description><![CDATA[Околовзломная iOS тематика.]]></description><image><url>https://img3.teletype.in/files/e9/f5/e9f54d6f-2542-44da-8c02-b6e71e2e4571.png</url><title>Pro хаки</title><link>https://teletype.in/@s0mehack1ng</link></image><link>https://teletype.in/@s0mehack1ng?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=s0mehack1ng</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/s0mehack1ng?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/s0mehack1ng?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Wed, 07 Oct 2026 18:50:27 GMT</pubDate><lastBuildDate>Wed, 07 Oct 2026 18:50:27 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@s0mehack1ng/receipt-verification-blocking</guid><link>https://teletype.in/@s0mehack1ng/receipt-verification-blocking?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=s0mehack1ng</link><comments>https://teletype.in/@s0mehack1ng/receipt-verification-blocking?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=s0mehack1ng#comments</comments><dc:creator>s0mehack1ng</dc:creator><title>Блокировка проверки чека приложений</title><pubDate>Thu, 01 Aug 2024 06:56:38 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/bc/eb/bceb1ba5-1a1d-490b-b3f9-eaca409f464b.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/2d/57/2d576660-258e-434f-b2b0-51c2111eccd3.png"></img>Расширение способа взлома iOS приложений переносом кэша путём блокировки проверки наличия покупок]]></description><content:encoded><![CDATA[
  <p id="dxMr">Как известно, проверка наличия покупки в iOS приложениях осуществляется через проверку чека (<a href="https://teletype.in/@s0mehack1ng/iOS-apps-hack-without-modify#8IZe" target="_blank">подробнее здесь</a>). Так же известно о возможности перенести кэш приложения, и, если в нём прописано наличие выполненной покупки, приложение может принять это за чистую монету (<a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer" target="_blank">подробнее здесь</a>), разблокировав покупку. Однако бывают ситуации, когда кэш с записью о наличии покупки перенесён, и приложение успешно принимает эту запись, но всё равно дополнительно выполняет проверку чека, после чего обнаруживает подвох, сбрасывая покупку. Что делать в такой ситуации? Кажется победа близка, премиум получен, но всё портит одна маленькая проверка. Если проверка происходит локально на устройстве, увы, тут пока ничего не придумали. Но в том случае, когда проверка осуществляется на сервере, решение есть, и заключается оно в блокировке запроса приложения к серверу. Если после неудавшейся проверки приложение не сбрасывает премиум, а решает попробовать позже, и мы достигаем желаемого результата. Конечно, позже оно тоже не сможет)) Но мы ему об этом не скажем 🤫</p>
  <p id="2416"></p>
  <p id="Gd1r"></p>
  <h2 id="NcPH">Содержание</h2>
  <p id="XwqZ"><br /><a href="#7MF4">Теория</a></p>
  <p id="5aTt"><a href="#GuyK">Создание профиля</a></p>
  <p id="lZ72"><a href="#yboh">Установка профиля</a></p>
  <p id="u9LV"><br /></p>
  <h2 id="7MF4">Теория</h2>
  <p id="R4HS"></p>
  <p id="UrWM">Как же заблокировать запросы к серверу проверки? На iOS существуют специальные профили конфигурации, позволяющие устанавливать некоторые настройки, недоступные для изменения вручную. Раздел с профилями находится в настройках по пути &quot;Основные&quot; → &quot;VPN и управление устройством&quot;. </p>
  <figure id="EtUw" class="m_retina">
    <img src="https://img2.teletype.in/files/97/af/97af3116-aa0d-43d0-b249-f58adad20a6d.png" width="375" />
  </figure>
  <p id="BzTX">В числе прочих настроек профили позволяют блокировать запросы любых приложений к адресам с указанными доменами. Например, приложение хочет запросить некую информацию c example.com, но профиль не даст ему это сделать. Так как наша цель — заблокировать проверку чека, требуется установить профиль, блокирующий доступ к домену проверки. Для большинства приложений эти домены будут разные. </p>
  <p id="NUAJ">Блокировка доменов происходит через локальное dns, которое нигде не отображается. Поэтому помните!<u>Профиль действует, пока не включено никакое vpn, и с ним запускать взламываемые приложения нельзя.</u></p>
  <p id="n2qI"><strong>На канале iOS Apps Cache готовые профили будут прикладываться к постам с приложениями, нуждающимися в блокировке проверки.  Если вы не делаете взломы сами, пропустите шаги с созданием профиля и перейдите к <a href="#yboh">его установке</a>.</strong></p>
  <p id="VnTi"><br /></p>
  <h2 id="GuyK">Создание профиля <br /></h2>
  <p id="UizF">Заблокировать можно далеко не каждую проверку. Очень часто случается так, что проверка покупок осуществляется на том же домене, с которого запрашиваются различные данные, необходимые для работы приложения. Например Songsterr по запросу &quot;<a href="https://www.songsterr.com/webhook/appstore/sri/verify" target="_blank">https://www.songsterr.com/webhook/appstore/sri/verify</a>&quot; проверяет покупки, а по запросу &quot;<a href="https://www.songsterr.com/api/meta/439171" target="_blank">https://www.songsterr.com/api/meta/439171</a>&quot; получает информацию о треке. Если заблокировать домен &quot;www.songsterr.com&quot;, приложение работать не будет. Тем не менее, есть приложения, у которых проверка происходит на обособленном домене. Чаще всего это те, которые используют не свой, а сторонние сервисы для расшифровки чека, такие как <a href="https://www.revenuecat.com" target="_blank">RevenueCat</a> или Buy-itunes. После того, как вы взломали приложение <a href="https://teletype.in/@s0mehack1ng/iOS-apps-hack-without-modify#0xpO" target="_blank">при помощи подмены</a> и определили адрес, ответственный за проверку, можно перейти к блокировке.</p>
  <p id="IFMO">Как же сгенерировать блокирующий профиль? В этом поможет <a href="https://www.icloud.com/shortcuts/c9570fd890a24f0a98dde2e01b2cabc5" target="_blank">специальная команда</a>.</p>
  <p id="Iw45">Запустите команду. Введите домены, которые необходимо заблокировать или ссылки их содержащие. Чтобы добавить несколько доменов в один профиль, нажимайте «<em>+</em>». Затем нажмите &quot;<em>Готово</em>&quot;.</p>
  <figure id="RJiY" class="m_column">
    <img src="https://img2.teletype.in/files/56/cd/56cd211b-4848-4cf3-8784-051f7980d73b.png" width="1297" />
  </figure>
  <p id="eOBz">Чтобы сохранить домены в команде для автоматической подставке при каждом создании профиля, добавьте их во второе действие аналогичным образом.</p>
  <figure id="YDWQ" class="m_retina">
    <img src="https://img4.teletype.in/files/f3/77/f377ea2c-321e-4d9d-902a-922bf4858867.png" width="664" />
  </figure>
  <p id="WlfR">Профиль сгенерируется и начнёт устанавливаться.</p>
  <h2 id="yboh"><br />Установка профиля</h2>
  <p id="fwOq"></p>
  <p id="kUBR">Нажмите &quot;<em>Разрешить</em>&quot;</p>
  <figure id="1brE" class="m_column">
    <img src="https://img3.teletype.in/files/6a/e7/6ae77dda-adf5-476c-afb7-895bd21c4743.png" width="2048" />
  </figure>
  <p id="Pet4">Перейдите в &quot;Настройки&quot;. Вверху на главной странице будет загруженный профиль. </p>
  <p id="QpHQ">Нажмите на него.</p>
  <p id="LlMm">Нажмите &quot;<em>Установить</em>&quot;</p>
  <figure id="RyOA" class="m_retina">
    <img src="https://img1.teletype.in/files/0c/80/0c80e882-cd7f-4617-948d-8ca81078a881.png" width="560.5" />
  </figure>
  <p id="LQG5">Введите пароль</p>
  <figure id="0RdE" class="m_retina">
    <img src="https://img2.teletype.in/files/dc/5b/dc5b8faa-a6e6-41c5-9d25-890faf0bdf33.png" width="555.5" />
  </figure>
  <p id="O5Dd">Нажмите &quot;<em>Далее</em>&quot;.</p>
  <figure id="Wf8Q" class="m_retina">
    <img src="https://img4.teletype.in/files/b6/1c/b61c7db2-56e8-43de-a24d-41fa418c426e.png" width="562" />
  </figure>
  <p id="ofpo">Нажмите &quot;<em>Установить</em>&quot;.</p>
  <figure id="C2e9" class="m_retina">
    <img src="https://img1.teletype.in/files/4b/4b/4b4b9419-38b5-4d36-b730-58c03d16faa5.png" width="553.5" />
  </figure>
  <p id="0rRK"></p>
  <p id="yhec">Перенесите кэш приложения как обычно, после чего можете его использовать.</p>
  <p id="Z8OO"><br /></p>
  <p id="kTEj">Выражаю благодарность t.me/tryonyx за поданную идею.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer</guid><link>https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=s0mehack1ng</link><comments>https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=s0mehack1ng#comments</comments><dc:creator>s0mehack1ng</dc:creator><title>Перенос данных iOS приложений</title><pubDate>Thu, 01 Feb 2024 15:49:58 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/0c/08/0c083724-3e75-4c8b-8a48-759bb22aeb51.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/d1/c3/d1c334e9-a5af-4a66-b11a-15375b9e44b2.png"></img>Наиболее полное собрание информации о способах переноса данных iOS приложений и всех сопутствующих проблемах и возможностях]]></description><content:encoded><![CDATA[
  <p id="H7BG">Каждое приложение во время индивидуальной работы пользователя создаёт и хранит данные: это могут быть как записи или пользовательские файлы, так и информация о прогрессе в игре или открытых внутренних покупках. Порой возникает необходимость перенести накопленные данные с целью их сохранения или «взлома» покупок или валюты. С течением времени появилось достаточно способов извлечения и переноса этих самых данных, или кэша приложения для разных ситуаций и версий системы. В этой статье будут рассмотрены все доступные на данный момент способы.</p>
  <p id="icOi"></p>
  <p id="zeF4"></p>
  <p id="lEwA"></p>
  <h2 id="ReCJ">Содержание</h2>
  <p id="8XUb"></p>
  <p id="zuJ0"><a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#jDZX" target="_blank">iMazing</a></p>
  <p id="XcNr">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#doDI" target="_blank">Восстановление кэша</a></p>
  <p id="8pAt">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#G51w" target="_blank">Извлечение кэша</a></p>
  <p id="CJes"><a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#Kn6J" target="_blank">Filza File Manager</a></p>
  <p id="pHux">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BA%D1%8D%D1%88%D0%B0" target="_blank">Распаковка кэша</a></p>
  <p id="q4nV">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85-%D0%BF%D0%B0%D0%BF%D0%BE%D0%BA-%D0%BA%D1%8D%D1%88%D0%B0" target="_blank">Перенос основных папок кэша</a></p>
  <p id="iJXx">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%BF%D0%B0%D0%BF%D0%BE%D0%BA-%D0%BA%D1%8D%D1%88%D0%B0-%D0%B3%D1%80%D1%83%D0%BF%D0%BF" target="_blank">Перенос папок кэша групп</a></p>
  <p id="xw4r"><a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#J1MO" target="_blank">Apps Manager</a></p>
  <p id="UJnB">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#cAun" target="_blank">Восстановление кэша</a></p>
  <p id="rAeQ">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#V3AZ" target="_blank">Извлечение кэша</a></p>
  <p id="uM5z"><a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#xpSs" target="_blank">ESign</a></p>
  <p id="pBx9">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#At5v" target="_blank">Восстановление кэша</a></p>
  <p id="9TRr">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#giXd" target="_blank">Извлечение кэша</a></p>
  <p id="kSS3"><a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#iDeK" target="_blank">Crane</a></p>
  <p id="xlCp">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#kKLY" target="_blank">Восстановление кэша</a></p>
  <p id="sigF">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#lsQo" target="_blank">Извлечение кэша</a></p>
  <p id="0mcm"><a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#9lAw" target="_blank">Устройство кэш-содержащих файлов</a></p>
  <p id="PXfp">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#Te1j" target="_blank">imazingapp</a></p>
  <p id="3AeX">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#A109" target="_blank">adbk</a></p>
  <p id="x53O">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#RuJm" target="_blank">zip</a></p>
  <p id="TIIW">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#4m3W" target="_blank">cranect</a></p>
  <p id="08p7"></p>
  <p id="rlfL"><br /></p>
  <h2 id="jDZX">iMazing</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="2QSq">Плюсы: самый универсальный способ — подходит для всех версий iOS, не нужно устанавливать приложений на телефон.</p>
    <p id="DrPc">Минусы: требуется компьютер и дополнительное приложение на нём, переносятся не все данные (наименьшее количество из всех способов), перед переносом нужно выключать &quot;найти iPhone&quot;, при извлечении данных надо делать полную резервную копию устройства на компьютер.</p>
  </section>
  <p id="KC10"><br /></p>
  <p id="z38y">Установите приложение &quot;iMazing&quot; на компьютер под управлением macOS или Windows.</p>
  <ul id="WOyy">
    <li id="y7mm">Официальную последнюю версию можно скачать <a href="https://imazing.com/download" target="_blank">отсюда</a> (не рекомендуется). Рекомендуется же установить версию 3.0.6.1- для Windows <a href="https://diskaid.ru.uptodown.com/windows/download/1042662858" target="_blank">отсюда</a> и для MacOS <a href="https://diskaid.ru.uptodown.com/windows/download/1042662858" target="_blank">отсюда</a>. Более новые версии требуют создания копии устройства на компьютер перед переносом кэша.</li>
  </ul>
  <ul id="drXM">
    <li id="fClz">Взломанную версию 3.0.6 для MacOS можно скачать <a href="https://psv4.userapi.com/s/v1/d/HUanoxmv4OHySN_QrR9HOPC-bqP8klmgmX4yHvfkrz-VulPxmda2Y1NBRrPt122bQHIQOc84ozunpxyOSxY5AL-RBcnAqREmYDxF2LmljcjglPulwH-4sw/iMazing_3_0_6_21166_U2B_atb.dmg" target="_blank">отсюда</a>.</li>
    <li id="HUaP">Взломанную старую версию 2.12.3 для Windows можно скачать <a href="https://lrepacks.net/repaki-raznyh-programm/376-imazing-amp-repack.html" target="_blank">отсюда</a>. При работе с устройством на новой iOS вылезает предупреждение, его можно игнорировать.</li>
    <li id="4RB8">Новые версии можно частично взломать на Windows: функции с ограниченным количеством применений можно будет использовать сколько угодно, но полностью недоступные функции не откроются. Для этого установите iMazing, скачайте <a href="https://mega.nz/file/PYxiwKzJ#-wInulPrzea8Po9-yDmngmReWZ6sG9OcdRG54x475ec" target="_blank">этот файл .bat</a> и запустите его. Всё произойдёт автоматически.</li>
  </ul>
  <p id="7oy1">Так или иначе, для переноса кэша платный функционал не понадобится!</p>
  <figure id="Uf6u" class="m_custom">
    <img src="https://telegra.ph/file/f0367dbc08737ba561ccf.png" width="491.99999999999994" />
  </figure>
  <p id="8L0P">Подключите ваше устройство кабелем к компьютеру и запустите iMazing.</p>
  <p id="BgM8">Нажмите на &quot;<em>Управление приложениями</em>&quot;.</p>
  <figure id="Xsgw" class="m_column">
    <img src="https://telegra.ph/file/d912efc88f31587b780c4.jpg" width="1440" />
  </figure>
  <p id="EPrv"></p>
  <p id="pIhq"></p>
  <h3 id="doDI">Восстановление кэша</h3>
  <p id="NZhe"></p>
  <p id="aD7n">Нажмите на стрелку внизу.</p>
  <figure id="h7iS" class="m_column">
    <img src="https://telegra.ph/file/8ec4c25a1b6ce4daf76d0.jpg" width="1440" />
  </figure>
  <p id="ILtK">Кликните на &quot;<em>восстановить данные приложения</em>&quot;</p>
  <figure id="Ukve" class="m_column">
    <img src="https://telegra.ph/file/27e6f7f238283f6986263.jpg" width="1440" />
  </figure>
  <p id="y2dS">Нажмите «<em>выбрать</em>», после чего выберите файл .imazingapp и нажмите &quot;<em>готово</em>&quot;</p>
  <figure id="bg3j" class="m_column">
    <img src="https://telegra.ph/file/1b6f74f8bd79d951a0d81.jpg" width="1440" />
  </figure>
  <p id="1ZlR">Отключите функцию &quot;Найти айфон&quot;, если она включена (после окончания процедуры можно включить обратно)</p>
  <figure id="Mn2r" class="m_column">
    <img src="https://telegra.ph/file/b48beac67c33a7bb1657a.png" width="1440" />
  </figure>
  <p id="gqug">Какое-то время будет идти процесс импорта кэша, после чего появится экран приветствия. Дождитесь, когда iMazing напишет &quot;готово&quot;.</p>
  <p id="15GW">Когда айфон попросит ввести пароль от apple id, можно нажать &quot;Пропустить&quot;</p>
  <p id="jFJu"><strong>Если у вас iOS 15.0.0+</strong>, при появлении окна &quot;Ваши настройки для нового iPhone&quot;, нажмите &quot;<em>Настроить параметры</em>&quot;</p>
  <figure id="1o2U" class="m_retina">
    <img src="https://telegra.ph/file/d179cc630b986a6011a21.jpg" width="356.5" />
  </figure>
  <p id="jkAh">Айфон предложит перенести данные из разных источников. Нажимайте &quot;<em>Не переносить приложения и данные</em>&quot;, <strong>ваши данные не сбросится</strong>.</p>
  <figure id="T11O" class="m_retina">
    <img src="https://telegra.ph/file/965c009154424ff502aac.jpg" width="357" />
  </figure>
  <p id="MP1v">Начните проходить этап первоначальной настройки. После повтороного появляения окна &quot;Ваши настройки для нового iPhone&quot;, снова выберите &quot;<em>Настроить параметры</em>&quot;</p>
  <p id="Dh9i">Закончите первоначальную настройку, и после этого всё будет как прежде, но кэш будет импортирован в нужное приложение.</p>
  <p id="iPRF"><strong>Если вы что-то сделали не так, и устройство начало восстанавливаться с копии, тут же перезагрузите его и попробуйте ещё раз.</strong></p>
  <p id="RhWU">Потенциальные побочные эффекты для старых версии iMazing и iOS 13.0.0+: </p>
  <ul id="KiTv">
    <li id="bY7a">Регион устройства может поменяться на &quot;США&quot;, а следовательно формат времени может смениться на 12-часовой и дата на заблокированном экране и в центре уведомлений может отображаться на английском языке (поменяйте в настройках регион на ваш).</li>
    <li id="8vTD">Дата на экране уведомлений и блокировки будет на английском (поменяйте в настройках язык на любой и снова на ваш).</li>
    <li id="Jq2S">Сторонние клавиатуры идут отключиться (включите обратно в настройках)</li>
    <li id="WYvI">После обновления iOS некоторые приложения могут откатываться до более ранних версий, а удалённые возвращаться (создайте копию, сотрите данные, а затем восстановите телефон)</li>
  </ul>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="x9se">Один раз был случай, когда сбросились карты apple pay и некоторые приложения вышли из аккаунтов</p>
    <p id="oSln">Один раз был случай, когда телефон перестал выходить из меню настройки и завис на вводе пароля от apple id. Помогла только перепрошивка и восстановление с копии.</p>
  </section>
  <p id="kdiY"></p>
  <h3 id="G51w">Извлечение кэша</h3>
  <p id="DwD7"></p>
  <p id="dMaN">Найдите нужное приложение поиском или вручную и нажмите на него (можно выбрать несколько, зажав &quot;Ctrl&quot;).</p>
  <figure id="3gGg" class="m_column">
    <img src="https://img1.teletype.in/files/49/e9/49e9a92f-11de-4d6f-a5c6-687162951d01.jpeg" width="1440" />
  </figure>
  <p id="pnP2">Нажмите на стрелку в правом нижнем углу, а затем на &quot;<em>Создать копию данных</em>&quot;.</p>
  <figure id="55n7" class="m_column">
    <img src="https://img1.teletype.in/files/46/7e/467e1597-3034-43dd-a024-f3acbd04803e.jpeg" width="1440" />
  </figure>
  <p id="KV2u">Выберите место сохранения файла с кэшем приложения, определитесь, хотите ли вы получить свежую копию данных, или будет достаточно старой (если таковая имеется). В первом случае извлечение произойдёт быстро, а во втором iMazing сделает полную копию данных устройства.</p>
  <figure id="nfTg" class="m_column">
    <img src="https://img2.teletype.in/files/d9/58/d958f14f-e772-4c05-a26e-2cb8375b0a44.jpeg" width="1440" />
  </figure>
  <p id="Xrwe">Нажмите &quot;<em>ОК</em>&quot; в правом нижнем углу.</p>
  <figure id="xT3V" class="m_column">
    <img src="https://img4.teletype.in/files/39/47/3947385c-3d32-475d-bac0-a27e46971edf.jpeg" width="1440" />
  </figure>
  <p id="GQE8">Дождитесь окончания извлечения. На выходе получится файл .imazingapp.</p>
  <figure id="2Exb" class="m_column">
    <img src="https://img1.teletype.in/files/cf/0e/cf0e49a9-0539-463d-a273-d2dda5e31ae8.png" width="1440" />
  </figure>
  <p id="gICl"></p>
  <p id="jXVe"></p>
  <h2 id="Kn6J"><br />Filza File Manager</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="dang">Плюсы: на некоторых iOS позволяет переносить кэш без Troll Store и подписи корневым сертификатом, переносит больше, чем iMazing, позволяет перенести кэш из файла любого формата.</p>
    <p id="vxIB">Минусы: подходит только для устройств на iOS 11.0.0–13.4.1, 14.0.0–15.7.1, 16.0.0–16.6.1, 17.0.0 или для устройств с джейлбрейком, требует подписи и установки ipa, переносит не все данные, способ может оказаться сложным для рядовых пользователей в виду большого количества особых случаев и нюансов.</p>
  </section>
  <figure id="ky4t" class="m_retina">
    <img src="https://telegra.ph/file/731705a1ec8170c0089c9.jpg" width="512" />
  </figure>
  <p id="AZXs"><br /></p>
  <p id="1iAF">В данной главе будет сакцентировано внимание на восстановлении кэша, чтобы извлечь его, просто проследуйте по шагам ниже до нахождения папок, в которых находится кэш, и отправьте их, куда пожелаете.</p>
  <p id="3JHE">Если у вас <u>нет джейлбрейка</u>, установите файловый менеджер &quot;Filza&quot; любым доступным для установки ipa способом, <a href="https://blog.semyonsemenov.ru/FAQ-installing_apps" target="_blank">подробней здесь</a><a href="https://t.me/fcksanction/50" target="_blank">.</a></p>
  <p id="dmWp">ipa файлы филзы (могут работать нестабильно и часто вылетать / вызывать перезагрузку, на некоторые версии iOS можно попробовать разные):</p>
  <p id="nPXh"><a href="https://mega.nz/file/uQhWGbbJ#q5QfYCw8zZkPgPmnVhOU-gXvHQdsv-k4LzhmiBiDBYA" target="_blank">11.0.0 — 11.3.1</a></p>
  <p id="bl7s"><a href="https://mega.nz/file/6RAwQSoa#d1Kv1JwWg39ILQ3lypls92VyyI2caj8c3LkR6H0h9fQ" target="_blank">12.0.0 — 12.1.2</a></p>
  <p id="6HCT"><a href="https://mega.nz/file/SM4VxRzZ#bCZmPJbET-XS5ZrlVxfYIUUgIQehYC4Lkr-kpKslNHI" target="_blank">12.1.3 — 12.2.0</a></p>
  <p id="UAcN"><a href="https://mega.nz/file/mIxzUYzT#KKC-82tDeztZGMU59Dxcwpq10xr24Jo526XhHpJS18A" target="_blank">11.0.0 — 13.4.1</a></p>
  <p id="jSC0"><a href="https://mega.nz/file/KAwmUQJD#h3FE_TBf7-JuZrjs2saG9ebQurtVXTmhawwHJkKJ7Eo" target="_blank">14.0.0 — 14.3.0</a></p>
  <p id="6kLu"><a href="https://mega.nz/file/zcIhwCwb#HDCGTUu2He_qkq9styRWDUWhYnk0g3cf1yelvp4o5tE" target="_blank">15.0.0 — 15.1.1</a></p>
  <p id="Kuyr"><a href="https://mega.nz/file/OVB03JKb#OL3AQV5uwR0F1TzEiV-o9czMZbJPoVl1v9wXfHQv0Ko" target="_blank">15.0.0 — 15.7.1, 16.0.0 — 16.1.2</a></p>
  <p id="p8cc"><a href="https://mega.nz/file/fIJXDBYI#A5IGADMoFwQhVtP3jnhsVHaWzTCcm39Efc8BKIjAtwY" target="_blank">15.0.0 — 15.7.1, 16.0.0 — 16.1.2</a></p>
  <p id="AR6K"><a href="https://mega.nz/file/eBBzHRBa#bfZxMwLkBLsJeOPy__7jHUo-zqRUjmrl9dpEjUk3hnY" target="_blank">14.0.0~b2 — 16.7.0~RC, 17.0.0</a>(стабильная, установка через trollstore и т.п.) </p>
  <p id="W52V">Если у вас <u>есть rootfull джейлбрейк</u>, добавьте в ваш менеджер пакетов <a href="http://apt.thebigboss.org/repofiles/cydia/dists/stable" target="_blank">репозиторий ReJail</a> и установите взломанную <a href="https://rejail.ru/pack/filza" target="_blank">Filza </a>или добавьте <a href="http://apt.thebigboss.org/repofiles/cydia/dists/stable" target="_blank">репозиторий BigBoss</a> и установите официальную <a href="https://moreinfo.thebigboss.org/moreinfo/depiction.php?file=filzafilemanagerDp" target="_blank">Filza</a>.</p>
  <p id="Cog6">Если у вас <u>есть rootless джейлбрейк</u>, установите взломанную Filza, скачав <a href="https://mega.nz/file/rRwlwADQ#i8VPbsVk8azkZN2eiAbTrX19hPtGKdqEtiQrmeT215U" target="_blank">этот файл .deb</a>, или добавьте в ваш менеджер пакетов <a href="http://apt.thebigboss.org/repofiles/cydia/dists/stable" target="_blank">репозиторий BigBoss</a> и установите официальную <a href="https://moreinfo.thebigboss.org/moreinfo/depiction.php?file=filzafilemanagerDp" target="_blank">Filza</a>.</p>
  <p id="DHad"></p>
  <h3 id="Распаковка-кэша"><br />Распаковка кэша</h3>
  <p id="mW1W"></p>
  <p id="UhCF">Большинство файлов, содержащих кэш, представляют из себя zip-архивы с изменённым расширением. Таким образом, чтобы извлечь их содержимое, необходимо их разархивировать. Проблема заключается в том, что в некоторых филзах архивавация и разархивация не работают.</p>
  <p id="2nqQ">Скачайте файл с кэшем и отправьте его в филзу через меню &quot;поделиться&quot;.</p>
  <p id="osC9">Нажмите на него, чтобы распаковать</p>
  <figure id="EOb7" class="m_column">
    <img src="https://telegra.ph/file/efde524463218d9f3b55f.jpg" width="2048" />
  </figure>
  <p id="IxBh">Если извлечь содержимое не удалось, установите какое-либо приложение для работы с архивами, замените расширение файла на zip, разархивируйте и переправьте в филзу.</p>
  <p id="xbiS"></p>
  <h3 id="Xosd"></h3>
  <h3 id="Перенос-основных-папок-кэша">Перенос основных папок кэша</h3>
  <p id="t9xi"></p>
  <p id="ZUP7">В этом разделе речь идёт о папках Library, Documents, SystemData, StoreKit, CloudKit и tmp.</p>
  <p id="SxuD">В зависимости от формата вашего кэш-содержащего файла эти папки могут быть в различном составе и в разных местах кэша. В <u>imazingapp</u> будут только &quot;Library&quot; и &quot;Documents&quot;, которые будут находится в папке &quot;Container&quot;. В <u>adbk</u> их будет больше, и они будут находится в папке с bundle id приложения в качестве названия. Найдите эти папки и переместите их в Филзу, если они ещё не там.</p>
  <p id="kHPN">В Филзе нажмите &quot;<em>Править</em>&quot;.</p>
  <figure id="3YsB" class="m_column">
    <img src="https://telegra.ph/file/822b090b2bca4004409ae.jpg" width="2048" />
  </figure>
  <p id="m977">Выделите папки &quot;Documents&quot; и &quot;Library&quot;, нажмите &quot;<em>Копировать</em>&quot;.</p>
  <figure id="ij7y" class="m_column">
    <img src="https://telegra.ph/file/9814f6214719abc16a91a.jpg" width="2048" />
  </figure>
  <p id="f7In">Задержите палец на названии папки.</p>
  <figure id="Pzt6" class="m_column">
    <img src="https://telegra.ph/file/9b6b73b48bcaf7837fdc2.jpg" width="2048" />
  </figure>
  <p id="f9Pv">В появившемся окне вставьте следующий путь:</p>
  <p id="SPzg">/private/var/mobile/Containers/Data/Application</p>
  <figure id="3tSa" class="m_column">
    <img src="https://telegra.ph/file/b79f0a0ee563bfba0ced3.jpg" width="2048" />
  </figure>
  <p id="NvLG">Нажмите &quot;<em>ОК</em>&quot;.</p>
  <p id="wr7C">На этом шаге возможно два варианта. 1. появившиеся папки подписаны по названиям приложений, в таком случае просто найдите папку нужного приложения и перейдите в неё; 2. появившиеся папки подписаны по bundle id приложений. Во втором случае, чтобы узнать bundle id нужного приложения, скопируйте ссылку на приложение из App Store, а затем запустите <a href="https://www.icloud.com/shortcuts/4fd7740e3d3b4fbf895a1d4571ca33d1" target="_blank">эту команду</a>.</p>
  <figure id="3hI2" class="m_column">
    <img src="https://telegra.ph/file/fd89abe1fa30a61e02c7e.jpg" width="1547" />
  </figure>
  <p id="ELtI">Нажмите на значок &quot;<em>📋</em>&quot;, затем &quot;<em>Вставить</em>&quot;.</p>
  <figure id="aDQz" class="m_column">
    <img src="https://telegra.ph/file/3591b5a7b74bfa421db6b.jpg" width="2024" />
  </figure>
  <p id="h7iG">Выберите &quot;Применить ко всем&quot; и нажмите &quot;<em>Заменить</em>&quot;.</p>
  <figure id="QRdP" class="m_column">
    <img src="https://telegra.ph/file/a5dee3be690f3282117ef.jpg" width="2048" />
  </figure>
  <p id="nHNU">Необходимо проверить собственность папок. Нажмите значок &quot;ℹ&quot; на перенесённой папке.</p>
  <figure id="M275" class="m_column">
    <img src="https://telegra.ph/file/b6cb416a81b2dc7721e17.jpg" width="2048" />
  </figure>
  <p id="dYFY">Посмотрите на пункт &quot;<em>Владелец</em>&quot;. Если его значение отлично от &quot;<em>mobile</em>&quot;, перейдите в этот раздел.</p>
  <figure id="1HI1" class="m_column">
    <img src="https://telegra.ph/file/9c2efe3ad4c527b82abfe.jpg" width="2048" />
  </figure>
  <p id="bFcH">Найдите и выберите &quot;<em>mobile</em>&quot;</p>
  <figure id="84O0" class="m_column">
    <img src="https://telegra.ph/file/df8adf9f1b165c1abcd79.jpg" width="2048" />
  </figure>
  <p id="Mx6t">Промотайте в самый низ меню и включите &quot;<em>Применить к подпунктам</em>&quot;</p>
  <figure id="kUvA" class="m_column">
    <img src="https://telegra.ph/file/90e32f46bf79cdf12e207.jpg" width="2048" />
  </figure>
  <p id="YoCD">Повторите шаги с изменением владельца для каждой перенесённой папки.</p>
  <p id="lJM2"></p>
  <p id="CYdU"></p>
  <h3 id="Перенос-папок-кэша-групп">Перенос папок кэша групп</h3>
  <p id="Mk9l"></p>
  <p id="kBGQ">Также у приложений часто имеются так называемые группы, кэш которых хранится в другом месте.</p>
  <p id="gj35">В кэш-содержащем файле положение их папок также зависит от формата. В imazingapp они находится в папке &quot;AppGroups&quot; внутри папки &quot;Container&quot;. В adbk они лежат в папке &quot;___groups___&quot;. Названия этих папок начинаются с &quot;group.&quot; Найдите эти папки и переместите их в Филзу, если они ещё не там.</p>
  <figure id="uE2r" class="m_column">
    <img src="https://telegra.ph/file/810a4c4e1e25e63471132.jpg" width="2048" />
  </figure>
  <p id="Pg5z">Повторите следующие шаги для каждой папки групп.</p>
  <p id="HEiP">Скопируйте папку.</p>
  <p id="s0PL">Задержите палец на названии папки.</p>
  <figure id="tggJ" class="m_column">
    <img src="https://telegra.ph/file/c8ef6a29c58062881cd58.jpg" width="2048" />
  </figure>
  <p id="pScz">В появившемся окне вставьте следующий путь:</p>
  <p id="eQa2">/private/var/mobile/Containers/Shared/AppGroup</p>
  <p id="aVRk">Нажмите &quot;<em>ОК</em>&quot;</p>
  <figure id="yM6K" class="m_column">
    <img src="https://telegra.ph/file/d72702223126d5abb305f.jpg" width="2048" />
  </figure>
  <p id="CvBU">Среди появившихся папок найдите с подписью, идентичной названию папки, из которой вы копировали, и перейдите в неё.</p>
  <figure id="0P9h" class="m_column">
    <img src="https://telegra.ph/file/739bef03eaa2afe35130f.jpg" width="2048" />
  </figure>
  <p id="8hLj">Вставьте скопированное с заменой.</p>
  <p id="86nt">Повторите со вставленными папками шаги с изменением владельца на &quot;mobile&quot;</p>
  <p id="NMXh"><strong>Приложение можно запускать!</strong></p>
  <p id="yhqj"></p>
  <h3 id="21Og"><br /></h3>
  <h2 id="J1MO">Apps Manager</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="6k8X">Плюс: обеспечивает перенос максимального количества данных из всех способов, не требует компьютера, простой и быстрый.</p>
    <p id="m4Cc">Минусы: Подходит только для iOS 14.0.0 — 15.7.1, 16.0.0 — 16.6.1, 17.0.0 и устройств с джейлбрейком, требует установки ipa, подписанного корневым сертификатом.</p>
  </section>
  <p id="JFjk"><br /></p>
  <p id="d01Z">Если у вас <u>есть rootfull джейлбрейк</u>, добавьте в ваш менеджер пакетов <a href="http://apt.thebigboss.org/repofiles/cydia/dists/stable" target="_blank">репозиторий ReJail</a> и установите взломанный <a href="https://rejail.ru/pack/appdatamanager" target="_blank">Apps Manager</a>.</p>
  <p id="cVlz">Если у вас <u>есть rootless джейлбрейк</u>, добавьте в ваш менеджер пакетов <a href="http://apt.thebigboss.org/repofiles/cydia/dists/stable" target="_blank">репозиторий BigBoss</a> и установите <a href="https://moreinfo.thebigboss.org/moreinfo/depiction.php?file=appsmanagerDp" target="_blank">Apps Manager</a>. Для rootless взломанного нет.</p>
  <p id="6LRs">Если <u>джейлбрейка нет</u>, установите <a href="https://github.com/opa334/TrollStore" target="_blank">Troll Store</a> или другой инструмент для подписи корневым сертификатом, скачайте и установите через него <a href="https://mega.nz/file/fBh33DoZ#Uk_E2-he3Ekvr11kx0nHbLR9S-pm2y0Dz-CmLHLS89Y" target="_blank">Apps Manager</a>.<br /></p>
  <h3 id="fy27"></h3>
  <h3 id="cAun">Восстановление кэша</h3>
  <p id="vGR5"></p>
  <p id="GAbJ">Отправьте файл .adbk в Apps Manager через меню &quot;поделиться&quot;.</p>
  <p id="ujpL">Нажмите &quot;<em>Restore AppData</em>&quot;</p>
  <figure id="QPc2" class="m_column">
    <img src="https://img4.teletype.in/files/bd/35/bd35292f-ed7f-4486-94b8-8012226795b0.png" width="2048" />
  </figure>
  <p id="8vTW">После восстановления, импортированный файл можно удалить, смахнув вправо.</p>
  <figure id="ZtuQ" class="m_column">
    <img src="https://img3.teletype.in/files/26/92/2692aa1f-e98e-43e7-9817-148945af6941.png" width="2048" />
  </figure>
  <h3 id="lZ0B"></h3>
  <h3 id="V3AZ"><br />Извлечение кэша</h3>
  <p id="fTHH"></p>
  <p id="OdNJ">Найдите в Apps Manager нужное приложение и нажмите на него.</p>
  <figure id="9MbN" class="m_column">
    <img src="https://img1.teletype.in/files/02/02/02023100-66b5-4cb3-90bb-3b6f8d0e411c.png" width="2048" />
  </figure>
  <p id="jZ1v">Нажмите &quot;<em>Backup</em>&quot; и затем &quot;<em>OK</em>&quot;</p>
  <figure id="3WFM" class="m_column">
    <img src="https://img4.teletype.in/files/b1/09/b1098573-db85-4102-a5fb-cfa1f01e418e.png" width="2048" />
  </figure>
  <p id="qiIb">Перейдите во вкладку &quot;<em>Backups</em>&quot; и нажмите на нужное приложение.</p>
  <figure id="X93M" class="m_column">
    <img src="https://img2.teletype.in/files/92/37/92372107-c50f-40fd-b3f5-013776266547.png" width="2048" />
  </figure>
  <p id="BK05">Нажмите на созданную копию и затем &quot;<em>Open in ...</em>&quot;</p>
  <figure id="J71z" class="m_column">
    <img src="https://img1.teletype.in/files/c8/06/c806a5e7-83c1-441d-b29d-353c6be9ca6b.png" width="2048" />
  </figure>
  <p id="2bcI">Получившийся файл .adbk можно отправить куда угодно и перенести кэш приложения на другое или это же устройство после переустановки приложения.</p>
  <p id="GBBe"></p>
  <h2 id="xpSs">ESign</h2>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ncBh">Плюсы: довольно простой и быстрый, не требует компьютера, на некоторых iOS позволяет переносить кэш без Troll Store и подписи корневым сертификатом, переносит больше, чем iMazing.</p>
    <p id="cMFx">Минусы: подходит только для устройств на iOS 15.0.0–15.7.1, 16.0.0–16.6.1, требует подписи и установки ipa, переносит не все данные.</p>
  </section>
  <p id="8OFp"></p>
  <p id="QjyV"><br />Установите ESign с <a href="https://esign.yyyue.xyz/" target="_blank">этого сайта</a>. Подробнее о подписи и установке ipa <a href="https://blog.semyonsemenov.ru/FAQ-installing_apps" target="_blank">здесь</a><a href="https://t.me/fcksanction/50" target="_blank">.</a></p>
  <figure id="h7wx" class="m_column">
    <img src="https://img2.teletype.in/files/59/e7/59e77fbb-13b8-44ff-b40f-578f36091611.jpeg" width="1536" />
    <figcaption>За скачивание какой версии отвечает каждая кнопка сайта</figcaption>
  </figure>
  <p id="i5dB"><br />Откройте ESign</p>
  <p id="jv4y">Перейдите во вкладку &quot;<em>Приложения</em>&quot; в раздел &quot;<em>Установлено</em>&quot;</p>
  <figure id="SYaF" class="m_column">
    <img src="https://img4.teletype.in/files/b8/28/b82823f2-3108-42f4-8e50-d4a01a0cacc2.png" width="2048" />
  </figure>
  <p id="QIIN">Нажмите на нужное приложение.</p>
  <p id="gqx2">Нажмите &quot;<em>Backup data</em>&quot;</p>
  <figure id="xVn6" class="m_column">
    <img src="https://img2.teletype.in/files/11/07/1107ca56-2c47-429f-aae2-88be470b1007.png" width="2048" />
  </figure>
  <p id="Ihjk"><br /></p>
  <h3 id="At5v">Восстановление кэша</h3>
  <p id="Jeet"></p>
  <p id="eH9j">Нажмите &quot;<em>Импорт</em>&quot;</p>
  <figure id="3T5D" class="m_column">
    <img src="https://img1.teletype.in/files/4a/ab/4aab3571-9e8d-49e6-a5b8-72d0d9ac2738.png" width="2048" />
  </figure>
  <p id="iXLN">Выберите кэш-содержащий файл. Это может быть как .zip, так и .imazingapp (не перенесётся кэш групп) или .adbk.</p>
  <p id="DnA0">Нажмите на импортированный файл, а затем нажмите &quot;Restore this backup&quot;</p>
  <figure id="pGN4" class="m_column">
    <img src="https://img4.teletype.in/files/be/f9/bef949dd-00f6-481a-81a8-c2a98bef8523.png" width="2048" />
  </figure>
  <p id="LICk">Готово! После восстановления импортированный файл можно удалить, смахнув влево.</p>
  <figure id="m0dM" class="m_column">
    <img src="https://img2.teletype.in/files/17/f9/17f90f95-d651-4fab-b0b0-0aa63fd32e53.png" width="2048" />
  </figure>
  <p id="BiTY"><br /></p>
  <h3 id="giXd">Извлечение кэша</h3>
  <p id="ud9J"></p>
  <p id="22B8">Нажмите &quot;<em>Backup</em>&quot;</p>
  <figure id="jjK6" class="m_column">
    <img src="https://img3.teletype.in/files/a2/b0/a2b0002c-a34a-47fc-9f14-f490b9dcdaf2.png" width="2045" />
  </figure>
  <p id="78gv">Вы можете наблюдать получившийся файл.</p>
  <figure id="vu0o" class="m_column">
    <img src="https://img1.teletype.in/files/8d/15/8d153df7-48ff-4489-bb15-b6ba59f99f4b.png" width="2048" />
  </figure>
  <p id="ksOY">Его можно найти в Филзе по пути &quot;/private/var/mobile/Containers/Data/Application/*/Documents/YYYAppFolder/Backup/⟨bundle id приложения⟩&quot; (подробнее смотрите в разделе извлечение кэша через филзу) или в приложении &quot;Файлы&quot; по пути &quot;На моём устройстве/Esign/YYYAppFolder/Backup/⟨bundle id приложения⟩&quot;, чтобы затем отправить куда угодно.</p>
  <figure id="sjz6" class="m_column">
    <img src="https://img3.teletype.in/files/a4/00/a4005f12-0f72-47ef-bbf2-10d8f35b791b.jpeg" width="2207" />
  </figure>
  <p id="UNLh"><br /><br /></p>
  <h2 id="iDeK">Crane</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="v5FL">Плюсы: переносит наибольшее количество данных, не требует компьютера, простой и быстрый, позволяет редактировать данные связки ключей внутри копии</p>
    <p id="Lwk6">Минусы: подходит только для устройств с джейлбрейком</p>
  </section>
  <p id="bxhN"><br /></p>
  <p id="L91r">Если у вас <u>есть rootfull джейлбрейк</u>, установите Crane, скачав <a href="https://mega.nz/file/rdQDSATB#AUVG5knK6cVUXOTanB9ir7S3CIUFvex4c6QQ5KcQHwE" target="_blank">этот файл .deb</a> или добавьте в ваш менеджер пакетов репозиторий <a href="https://havoc.app/package" target="_blank">Havoc</a> и купите <a href="https://havoc.app/package/crane" target="_blank">оригинальный Crane</a>.</p>
  <p id="mNL3">Если у вас <u>есть rootless джейлбрейк</u>, установите Crane, скачав <a href="https://mega.nz/file/uFoQAYBI#QhilQNODpBeDUGudZr6RdwAgcWOyFZfN3OHjtNZzw3A" target="_blank">этот файл .deb</a> или добавьте в ваш менеджер пакетов репозиторий <a href="https://havoc.app/package" target="_blank">Havoc</a> и купите <a href="https://havoc.app/package/crane" target="_blank">оригинальный </a></p>
  <p id="qnx6">Откройте в настройки, найдите и откройте раздел &quot;<em>Crane</em>&quot;, перейдите в в раздел &quot;<em>Приложения</em>&quot;</p>
  <figure id="rRAW" class="m_column">
    <img src="https://img1.teletype.in/files/0e/d5/0ed50b0b-eef0-418e-b103-ee9219c216c1.png" width="2048" />
  </figure>
  <p id="eYoz">Нажмите на нужное приложение.</p>
  <p id="jpbK">Перейдите в контейнер &quot;По умолчанию&quot;, если вы не создавали других.</p>
  <figure id="jr3n" class="m_column">
    <img src="https://img2.teletype.in/files/9a/61/9a612845-f875-4ea9-b47c-397eba9f439f.png" width="2048" />
  </figure>
  <p id="vaBf"></p>
  <h3 id="kKLY">Восстановление кэша</h3>
  <p id="JHWS"><br />Промотайте вниз и нажмите &quot;<em>Восстановить данные из резервной копии</em>&quot;</p>
  <figure id="JL05" class="m_column">
    <img src="https://img2.teletype.in/files/95/41/954159d3-a6d7-4903-b682-5201a27d9bc8.png" width="2048" />
  </figure>
  <p id="UL7W">Выберите файл .cranect</p>
  <p id="sJ7N">Нажмите &quot;<em>Продолжить&quot;</em></p>
  <figure id="wV6L" class="m_column">
    <img src="https://img3.teletype.in/files/2b/ab/2bab1a13-f8f9-4434-baf8-243fc0f83a29.png" width="2048" />
  </figure>
  <p id="0F1C"><br /></p>
  <h3 id="lsQo">Извлечение кэша</h3>
  <p id="64p2"><br />Нажмите &quot;<em>Создать резервную копию</em>&quot;</p>
  <figure id="Rypa" class="m_column">
    <img src="https://img2.teletype.in/files/98/4b/984bf00e-2cc5-4bab-87bd-4de3e52e0a6a.png" width="2048" />
  </figure>
  <p id="Jy0B">Введите название файла, включите Связку ключей. Шифрование включать в большинстве случаев нет смысла. Нажмите &quot;<em>Создать</em>&quot;</p>
  <figure id="rNro" class="m_column">
    <img src="https://img1.teletype.in/files/09/74/0974db10-c470-4bb4-a94b-20ea1b15aecc.png" width="2048" />
  </figure>
  <p id="tKtf">Отправьте получившийся файл куда угодно.</p>
  <p id="Ma41"><br /></p>
  <h2 id="9lAw">Устройство кэш-содержащих файлов</h2>
  <p id="xwbT"></p>
  <p id="dOIX"><br />Сегодня нами было упомянуто 4 типа кэш-содержащих файлов от разных приложений: .imazingapp — iMazing, .adbk — Apps Manager, .zip — ESign, .cranect — Crane. Все, кроме формата ESign представляют zip-архивы с изменённым расширением (у ESign даже расширение не изменено) Если разархивировать каждый из этих файлов, можно увидеть, что структура сохранения кэша у всех разная, однако во всех случаях можно проследить общую закономерность. </p>
  <ul id="qFN6">
    <li id="F9px">Всегда имеется основная папка данных приложения, которые находятся по пути /private/var/mobile/Containers/Data/Application. Она называется по разному от &quot;Container&quot; до bundle id приложения.</li>
    <li id="2qfa">Часто имеются папки с данными так называемых &quot;групп&quot; — дополнительных элементов приложений. В системе они находятся по пути &quot;/private/var/mobile/Containers/Shared/AppGroup&quot;. Обычно их названия начинаются на &quot;group.&quot;. Группы есть далеко не у всех приложений, но там часто содержатся важные данные.</li>
    <li id="eH9z">Реже имеются папки с данными других дополнительных элементов приложений — плагинов. В системе они находятся по пути &quot;/private/var/mobile/Containers/Data/PluginKitPlugin&quot;. В них почти никогда не содержатся важные данные, поэтому при переносе ими можно принебречь.</li>
    <li id="l0IT">Иногда имеется файл, содержащий данные, которые приложение хранит в связке ключей. Это должен быть .plist, бывает зашифрован.</li>
  </ul>
  <p id="6GhR">Рассмотрим каждый формат по отдельности.</p>
  <p id="97eI"></p>
  <p id="x9VN"></p>
  <h3 id="Te1j">imazingapp</h3>
  <p id="VWPP"></p>
  <p id="7RFT">Распаковав файл формата iMazing, видим 4 объекта: две папки и 2 файла.</p>
  <figure id="fIcU" class="m_column">
    <img src="https://img3.teletype.in/files/a3/d7/a3d73427-5e66-422b-8963-81ef42b783d6.png" width="1648" />
  </figure>
  <p id="93YT">Файл &quot;iTunesMetadata.plist&quot; содержит информацию о приложении, кэш которого. Единственная значимая информация — bundle id приложения, по которому iMazing производит определение, какому приложению восстановить кэш. Если извлечь кэш приложения, установленного по ссылке, в данном файле не будет bundle id, и такой кэш нельзя будет восстановить через iMazing, поэтому нужно узнать bundle id приложения, отправив ссылку из App Store на него в эту команду, а затем вручную добавить в файл строку с ключом &quot;softwareVersionBundleId&quot; и самим bundle id. Можно просто взять iTunesMetadata.plist из нормального файла .imazingapp другого, и заменить в нём bundle id, а затем поместить файл в редактируемый .imazingapp.</p>
  <figure id="JzZT" class="m_column">
    <img src="https://img1.teletype.in/files/44/e4/44e4e54a-9ffa-40eb-ab1a-59a9a897aca5.png" width="2048" />
  </figure>
  <p id="bNlY">Также в этом файле могут находится данные об apple id, с которого было скачено приложение. Если вы собираетесь распространять кэш, эти данные лучше удалить.</p>
  <figure id="VANu" class="m_column">
    <img src="https://img4.teletype.in/files/fc/c1/fcc10353-0a3d-4b27-9d81-f0d82e345539.png" width="2048" />
  </figure>
  <p id="2nv7">В папке &quot;Container&quot; можно наблюдать от двух до четырёх папок. Первая на скоиншоте — папка групп. Вторая — папка плагинов. Они могут быть или не быть в зависимости от того, есть ли они у приложения. Третья и четвёртая папка — две папки из основного контейнера приложения, остальные iMazing не переносит.</p>
  <figure id="6WfP" class="m_column">
    <img src="https://img4.teletype.in/files/bc/59/bc59832a-861b-40ad-8533-606f6df498bf.png" width="1648" />
  </figure>
  <p id="4avn">В папке с кэшем групп находятся папки с кэшем разных групп, названия которых начинаются на &quot;.group&quot;.</p>
  <figure id="xDOE" class="m_column">
    <img src="https://img2.teletype.in/files/90/f7/90f7cc71-4dd3-45f9-8607-a8aeee8ed317.png" width="1648" />
  </figure>
  <p id="b7Qj">Значение файла &quot;.lock&quot; и папки &quot;Payload&quot; не установлено, однако они необходимы, и и ошибки в них приводят к тому, что кэш не восстанавливается через iMazing, поэтому файл .imazingapp невозможно создать вручную с нуля.</p>
  <p id="xewC"></p>
  <p id="iMDF"></p>
  <h3 id="A109">adbk</h3>
  <p id="yNSp"></p>
  <p id="Walc">Распаковав файл формата Apps Manager, видим 7 файлов.</p>
  <figure id="roUX" class="m_column">
    <img src="https://img4.teletype.in/files/3f/27/3f27dc44-b290-430a-b9e2-b57befdf2cb8.png" width="1648" />
  </figure>
  <p id="yYWx">Пятая на скриншоте папка содержит budle id приложения в названии и кэш основного контейнера приложения внутри. В отличии от iMazing, Apps Manager переносит все папки.</p>
  <figure id="3jgw" class="m_column">
    <img src="https://img2.teletype.in/files/db/31/db3164aa-7310-4252-bc60-71463fcef794.png" width="1648" />
  </figure>
  <p id="aQ1X">Шестой на скриншоте файл имеет название в виде bundle id приложения и является дупликатом одноимённого файла по пути ⟨bundle id приложения⟩/Library/Preferences, но в приложение переносится именно он, поэтому если хотите отредактировать этот файл, редактируйте тот, который в корне adbk.</p>
  <figure id="j0UF" class="m_column">
    <img src="https://img1.teletype.in/files/89/56/8956f6fb-9f5e-4515-b78f-929733bd2f46.png" width="2048" />
  </figure>
  <p id="wJhD"> В папке &quot;___groups___&quot; содержится кэш групп приложения. Названия папок начинаются на &quot;.group&quot;.</p>
  <figure id="G31F" class="m_column">
    <img src="https://img4.teletype.in/files/b0/46/b04676f1-c490-4aac-ab2e-ab415e893cf9.png" width="1648" />
  </figure>
  <p id="ZpzS">В файле &quot;__private_info&quot; содержится информация из раздела связки ключей приложения. Он зашифрован, поэтому прочитать и отредактировать его нельзя. Без него восстановление кэша не удастся, поэтому файл .adbk не создать вручную.</p>
  <figure id="Yqs1" class="m_column">
    <img src="https://img2.teletype.in/files/92/b0/92b00096-10b3-4557-9948-710c58944957.png" width="2048" />
  </figure>
  <p id="m4Vc">В файле &quot;Binfo.plist&quot; содержится bundle id приложения, название и дата создания копии.</p>
  <figure id="FtTa" class="m_column">
    <img src="https://img3.teletype.in/files/e2/9f/e29fc369-f3b3-4c0f-9e3f-a7b9b010c004.png" width="2048" />
  </figure>
  <p id="vfKZ"><br /></p>
  <h3 id="RuJm">zip</h3>
  <p id="tQdh"></p>
  <p id="Rb5Q">Zip — обычное расширение архива, однако ESign воспринимает его как кэш-содержащий файл. </p>
  <p id="JBZg">Распаковав файл, созданный ESign, видим 8 объектов.</p>
  <figure id="FLSJ" class="m_column">
    <img src="https://img1.teletype.in/files/0d/90/0d90982c-3238-4f0e-9b22-1838538fc613.png" width="1648" />
  </figure>
  <p id="77vm">Файл &quot;.com.apple.mobile_container_manager.metadata.plist&quot; незначимый.</p>
  <p id="Rp4m">В папке &quot;___group___&quot; содержится кэш групп приложения. Названия папок начинаются на &quot;.group&quot;.</p>
  <figure id="xpp0" class="m_column">
    <img src="https://img3.teletype.in/files/68/c2/68c2ce87-d832-445d-853a-7ff7a7b7159a.png" width="1648" />
  </figure>
  <p id="Ouaq">Остальные папки — из основного контейнера приложения. Их больше, чем в .imazingapp — ESign переносит их все.</p>
  <p id="n4Cs"><br /></p>
  <h3 id="4m3W">cranect</h3>
  <p id="BKqM"><br />Распаковав файл Crane, видим разное количество объектов.</p>
  <figure id="HUUC" class="m_column">
    <img src="https://img3.teletype.in/files/e8/28/e828b4e1-43ee-44b2-b068-70025451dcfc.png" width="1648" />
  </figure>
  <p id="bnQg">Папки, начинающиеся на .group — папки групп приложения.</p>
  <p id="cu6x">Папка с названием в виде bundle id приложения — папка с данными основного контейнера приложения. Crane переносит все данные основного контейнера.</p>
  <figure id="B49b" class="m_column">
    <img src="https://img1.teletype.in/files/8f/f5/8ff579c9-f311-4e30-8e4e-6b0b226909d3.png" width="1648" />
  </figure>
  <p id="Hjzi">Остальные папки — папки с кэшем плагинов приложения. Crane переносит данные плагинов, как и iMazing.</p>
  <figure id="CPXM" class="m_column">
    <img src="https://img1.teletype.in/files/06/f3/06f362bf-d6ff-46fd-84c6-a9d75b8e8208.png" width="1648" />
  </figure>
  <p id="SNrf">Файл &quot;Keychain.plist&quot; содержит данные приложения, находящие в связке ключей. Это единственный формат кэш-содержащего файла, в котором данные связки ключей можно изменить.</p>
  <figure id="MTyX" class="m_column">
    <img src="https://img2.teletype.in/files/17/85/1785ed17-f63a-4923-ac28-d98340ade80a.png" width="2048" />
  </figure>
  <p id="Vvc2">Файл &quot;info.plist&quot; содержит bundle id приложения, некоторе данные твика и пути папок кэша на устройстве, с которого была сделана копия.</p>
  <figure id="ybfY" class="m_column">
    <img src="https://img2.teletype.in/files/98/3c/983c1779-4894-41f3-a13a-12c46f8568af.png" width="2048" />
  </figure>
  <p id="sHJg">Файл &quot;Metadata.plist&quot; содержит информацию о собственности, правах доступа и датах создания и изменения каждой папки.</p>
  <figure id="55Xb" class="m_column">
    <img src="https://img4.teletype.in/files/b5/65/b565b921-484b-4eb1-ac57-85fb69e9fdea.png" width="2048" />
  </figure>
  <p id="n6P5"><br /></p>
  <p id="1Fis">Зная об устройстве каждого из форматов кэш-содержащих файлов можно редактировать их и конвертировать друг в друга, перенося нужные папки и файлы. Некоторые из них можно создать с нуля, другие придётся сделать с того де самого приложения, с которого сделан &quot;конвертируемый файл&quot;, а затем просто перенести папки с кэшем из одного в другой. Пробуйте, экспериментируйте, спрашивайте!</p>
  <p id="zfqI"><br /><br /></p>
  <p id="FnKp"><strong>Статья сделана для <a href="https://t.me/iOSAppsCache" target="_blank">телеграм-канала iOS Apps Cache</a></strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@s0mehack1ng/iOS-apps-hack-without-modify</guid><link>https://teletype.in/@s0mehack1ng/iOS-apps-hack-without-modify?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=s0mehack1ng</link><comments>https://teletype.in/@s0mehack1ng/iOS-apps-hack-without-modify?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=s0mehack1ng#comments</comments><dc:creator>s0mehack1ng</dc:creator><title>Взлом iOS приложений без модификации пакета</title><pubDate>Sat, 26 Aug 2023 17:16:00 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/01/a4/01a4d672-8ae4-4994-95fc-9c316a5b8406.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/51/e2/51e2c493-39af-46dc-8858-421cb6ac022c.jpeg"></img>Самая подробная на просторах сети монография о взломе iOS приложений без модификации установочного пакета с иллюстрациями и схемами.]]></description><content:encoded><![CDATA[
  <p id="4O90"><strong>Дай</strong> <strong>человеку</strong> <strong>рыбу</strong>, и он будет сыт один день, научи его ловить <strong>рыбу</strong>, и он будет сыт всегда.</p>
  <p id="Okli">Наверняка во время скачивания готовых взломов приложений с каналов хоть раз вы задумывались, &quot;как бы здорово было уметь взламывать самому&quot;. Когда-то и я так думал, однако в то время и до сих пор не было таких материалов, которые бы провели сквозь это непростое дело и досконально всё показали. И вот, когда я всё-таки на какую-то часть освоил дело взломов iOS приложений, у меня появился уникальный шанс перевернуть сложившийся порядок и пролить свет на то, чем мы занимаемся. Соблазн этим шансом воспользоваться был слишком велик, я долго собирался, а теперь вы читаете эти строки. Так давайте приблизим дивный новый мир, где каждый взламывает себе сам что хочет!</p>
  <p id="PMjA">Будем начинать с самого простого и постепенно углубляться. Но сначала немного теории для реально заинтересованных. Желающие просто спокойно взломать могут пропустить следующий раздел и перейти к реализации, однако пропуск теории может помешать дальнейшему пониманию. </p>
  <p id="0oBF"></p>
  <p id="yelY"></p>
  <h2 id="vgCp"></h2>
  <h2 id="sN68">Содержание</h2>
  <p id="sI3X"></p>
  <p id="nhZK"><a href="#8IZe">Теория</a></p>
  <p id="oRNP"><a href="#8EOp">Редактирование файлов приложения</a></p>
  <p id="YvFm">    <a href="#uOKt">Поиск кэша приложения</a></p>
  <p id="MxeE">    <a href="#KN0m">Места, которые стоит проверить в первую очередь </a></p>
  <p id="MuVj"><a href="#fTpO">Подделка чека</a></p>
  <p id="Zz9w">    <a href="#f1BI">Установка инструментов</a></p>
  <p id="8XxU">    <a href="#PHgC">Настройка инструментов</a></p>
  <p id="yamp">    <a href="#YMlx">Использование инструментов</a></p>
  <p id="xcnU"><a href="#pz7S">Редактирование оперативной памяти приложения</a></p>
  <p id="81K6">    <a href="#savR">Установка инструментов</a></p>
  <p id="cMjp">    <a href="#05ca">Использование инструментов</a></p>
  <p id="fSnn"><a href="#0xpO">Подмена ответа от сервера проверки чека</a></p>
  <p id="EorY">    <a href="#u3fZ">Принцип работы</a></p>
  <p id="uQl4">    <a href="#SCA0">Инструменты</a></p>
  <p id="aB4E">    <a href="#DRG1">Настройка инструментов</a></p>
  <p id="b1Vh">    <a href="#JOmQ">Отслеживание запросов и просмотр ответов</a></p>
  <p id="obsG">    <a href="https://teletype.in/@s0mehack1ng/iOS-apps-hack-without-modify/#XzlX" target="_blank">Создание скриптов</a></p>
  <p id="ftIh">    <a href="#rQJ5">Применение скриптов</a></p>
  <p id="oqcR"><a href="#jfGZ">Перенос кэша</a></p>
  <p id="4Spo"><a href="#8FSe">Конец</a></p>
  <p id="xalt"></p>
  <p id="0uwK"></p>
  <p id="O7ol"></p>
  <h2 id="8IZe">Теория</h2>
  <p id="DyrA"><br /></p>
  <p id="evIy">В iOS существует StoreKit — система выполнения внутренних покупок в приложениях. Она осуществляет учёт внутренних покупок и их оплату, именно её окно с запросом подтверждения вы видете при попытке оплатить покупку. По правилам App Store приложение в обязательном порядке должны проводить оплату через неё. И эта система предполагает 4 категории внутренних покупок.</p>
  <ul id="Ha1d">
    <li id="90oC">Невозобновляемые подписки</li>
    <li id="JG3z">Авто-возобновляемые подписки</li>
    <li id="cDiu">Нерасходуемые (разовые покупки)</li>
    <li id="lIcj">Расходуемые (монетки в игре, &quot;разы использования&quot; в некоторых программах) </li>
  </ul>
  <figure id="DGAs" class="m_retina">
    <img src="https://img3.teletype.in/files/67/0c/670cbc26-12d5-4d09-84b1-ef48f7466670.jpeg" width="375" />
    <figcaption>Окно StoreKit по оплате авто-возобновляемой подписки</figcaption>
  </figure>
  <p id="QFqc">Данные о первых трёх категориях покупок, сохраняются на сервере Apple, чтобы любое приложение всегда могло получить сведения обо всех выполненных пользователем в нём покупках. Информацию о расходуемых покупках приложение вынуждено хранить где-то у себя, и их невозможно восстановить, следовательно, дальнейшие рассуждения будут касаться в основном первых трёх категорий. Как же сервер Apple в лице StoreKit передаёт информацию о покупках приложению? Через специальный файл — чек, вокруг которого всё и будет вращаться. Чек — это зашифрованный файл в формате PKCS#7, который содержит в себе информацию обо всех покупках, выполненных в приложении. Чек может появиться даже если приложение не имеет покупок, в таком случае в нём будет зафиксировано их отсутствие.<br />Как и когда он появляется?</p>
  <ul id="vXbO">
    <li id="Q0RB">Если приложение устанавливается с App Store, то сразу же после установки</li>
    <li id="vyPf">Если приложение устанавливается из других источников, то изначально чека нет, и, чтобы получить, приложение должно самостоятельно его запросить у StoreKit.</li>
  </ul>
  <p id="QFdI">После создания чек сохраняется по пути /private/var/mobile/Containers/Data/Application/*/StoreKit. При попытке открыть его в текстовом редакторе, конечно, вы мало что что сможете прочитать (он зашифрован), поэтому просто дописать в чек выполненные покупки не вариант.</p>
  <figure id="5LLd" class="m_column">
    <img src="https://img1.teletype.in/files/4e/30/4e30c08c-8b89-4e98-828e-741207fa8554.jpeg" width="1515" />
  </figure>
  <p id="hKGk">Но вот незадача: приложения без дополнительных действий, как и мы, не способны его прочитать. Перед этим его необходимо расшифровать. Сделать это можно несколькими способами:</p>
  <ul id="QDVa">
    <li id="d25h">Интегрировать в приложение специальную библиотеку OpenSSL и расшифровывать локально на устройстве.</li>
    <li id="f7kp">Отправлять для расшифровки на сервер apple по адресу <a href="https://buy.itunes.apple.com/verifyReceipt" target="_blank">https://buy.itunes.apple.com/verifyReceipt</a>. Сервер вернёт содержащийся в чеке json с данными о покупках.</li>
    <li id="qw5E">Отправлять для расшифровки на свой собственный (или чей-то ещё) сервер, который вернёт ответ в таком формате, который захочет разработчик. Обычно это также какой-либо json.</li>
  </ul>
  <figure id="H1vU" class="m_column">
    <img src="https://img2.teletype.in/files/d7/3f/d73fc358-3a66-46a2-bd0b-58697dcd64d7.jpeg" width="2100" />
    <figcaption>Схема проверки чека на сервере</figcaption>
  </figure>
  <p id="dIBn">После того, как приложение получило сведения о покупках из чека, оно может сохранить их в свой кэш или оставить в оперативной памяти, одним словом, оно будет знать, что покупка действительно выполнена, или что она отсутствует.</p>
  <p id="dw9b">Рассмотрим процессы, происходящие при выполнении новой или восстановлении старой покупки.</p>
  <ol id="wr0y">
    <li id="YEDO">Пользователь пытается выполнить покупку или восстановить её</li>
    <li id="eQp1">В случае выполнения приложение вызывает StoreKit, через который происходит оплата, и который создаёт чек, добавляет туда покупку и возвращает чек приложению. В случае восстановления приложение получает чек из своей папки &quot;StoreKit&quot; или, если его там нет, запрашивает у самого StoreKit.</li>
    <li id="hgtT">Приложение расшифровывает чек одним из приведённых выше способов.</li>
    <li id="en8B">Приложение использует полученные данные о покупках.</li>
  </ol>
  <p id="wJRP">Какие же места этого процесса уязвимы? Таких мест три.</p>
  <ul id="Rwex">
    <li id="wRjA">Формирование чека. При выполнении покупки её можно отменить, а чек подделать, зашифровать и отдать приложению. Такой метод реализован при помощи твиков, о которых речь пойдёт во втором разделе. Такой способ подходит только в случае, если проверка чека происходит локально на устройстве, серверная проверка замечает подвох. Речь о нём пойдёт во <a href="https://teletype.in/@zj_adram/iOS-apps-hack-without-modify#fTpO" target="_blank">третьем разделе</a>.</li>
    <li id="J1Cl">Хранение данных о покупке в оперативной памяти. Такой способ больше всего подходит для расходуемых покупок, так как зная их количество можно отыскать их в оперативной памяти приложения и изменить, об этом речь идёт в <a href="https://teletype.in/@zj_adram/iOS-apps-hack-without-modify#pz7S" target="_blank">четвёртом разделе</a>.</li>
    <li id="sY7X">Хранение данных в кэше приложения. После проверки чека, приложение где-то хранит сведения о покупке, а если оно их не шифрует, то их можно изменить. Об этом речь пойдёт в <a href="https://teletype.in/@zj_adram/iOS-apps-hack-without-modify#8EOp" target="_blank">первом разделе</a></li>
    <li id="PT2Q">Передача сервером для проверки данных от расшифрованного им чека приложению. Следите за руками. Приложение шлёт чек на проверку на сервер; сервер расшифровывает его и посылает приложению ответ о том, что покупок в нём нет; мы перехватываем ответ и пишем, что они есть; приложение получает ответ и думает, что всё в порядке. Подходит только для серверной проверки. Этот способ самый перспективный, так как всё больше приложений используют серверный метод расшифровки чека, при этом такой способ проще для выполнения без джейлбрейка. Речь о нём пойдёт в <a href="https://teletype.in/@zj_adram/iOS-apps-hack-without-modify#0xpO" target="_blank">предпоследнем разделе</a></li>
  </ul>
  <p id="u0gJ"></p>
  <p id="MMqj">Также в качестве домашнего задания рекомендую изучить следующие темы (понадобятся в предпоследней части):</p>
  <ul id="SS5G">
    <li id="LNME">Веб-запросы</li>
    <li id="rbom"><a href="https://habr.com/ru/articles/554274/" target="_blank">JSON</a></li>
    <li id="yLVV"><a href="https://web.archive.org/web/20230000000000*/http://website-lab.ru/article/regexp" target="_blank">Регулярные выражения</a></li>
  </ul>
  <p id="IeX1"></p>
  <p id="u8Qk"></p>
  <p id="mEdM"></p>
  <h2 id="8EOp">Редактирование файлов приложения</h2>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="UWeg">Плюсы: позволяет быстро накрутить игровую валюту, включить премиум данные сохраняются в кэш</p>
    <p id="rP5c">Минусы: Как правило может быть применён только на расходуемых покупках, без джейлбрейка нужно подписывать и устанавливать приложения, взламывать, а затем переносить кэш с выполненной накруткой в оригинальные приложения</p>
  </section>
  <p id="eg03"></p>
  <p id="0PNG"></p>
  <p id="llPs">Очень редко приложения хранят данные о покупках в кэше в незашифрованном виде, тогда эти данные можно найти и изменить. Как уже сказано, получаться будет нечасто.</p>
  <p id="BAGr"></p>
  <p id="e5BZ"></p>
  <h3 id="uOKt">Поиск кэша приложения</h3>
  <p id="xbWt"></p>
  <p id="Ud9D">В iOS приложения хранят свои данные по путям /private/var/mobile/Containers/Data/Application/* и /private/var/mobile/Containers/Shared/AppGroup/*. </p>
  <p id="Qlis"></p>
  <p id="OS4A">Как добраться до кэша </p>
  <ul id="ipOf">
    <li id="c3HP">Для джейлбрейка и Тролль стора есть программа Apps Manager, позволяющая делать копии данных и быстро открывать папки с данными приложений в Filza. Подробнее <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#xw4r" target="_blank">здесь</a>.</li>
    <li id="mhMY">Универсальный способ добраться до кэша — вытащить его через iMazing, отредактировать и затем перенести обратно. Подробнее <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#zuJ0" target="_blank">здесь</a>.</li>
    <li id="OSId">Для некоторых iOS это можно сделать через Filza. Подробнее <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#CJes" target="_blank">здесь</a>.</li>
  </ul>
  <p id="59T4"></p>
  <p id="7mjF"></p>
  <h3 id="KN0m"><strong>Места, которые стоит проверить в первую очередь</strong></h3>
  <p id="q0VI"></p>
  <p id="WX0v">Файл plist с названием в виде bundle id приложения, находящийся по пути папка-с-кэшем/Library/Preferences. Он предназначен для хранения настроек приложения, там же может находится значение по типу Premium = true или Unlock = 1, говорящее о совершённой покупке. Игры иногда хранят там число внутриигровой валюты. Пример — Nicegram, у которого когда-то было достаточно изменить значение HasUnlimPremium на YES.</p>
  <figure id="eWcq" class="m_column">
    <img src="https://img1.teletype.in/files/4c/3d/4c3dd239-dd5c-49a9-a90c-014de60995ab.png" width="1503" />
  </figure>
  <figure id="TVLc" class="m_column">
    <img src="https://img4.teletype.in/files/3f/3e/3f3e541c-488f-44d1-834a-7233a35a968d.jpeg" width="1507" />
  </figure>
  <p id="TzSZ"></p>
  <p id="gE3R">Папка Documents в папке кэша. Больше всего актуально для игр, которые хранят тут ваш прогресс, включая число внутриигровой валюты. Обращайте внимание на файлы с названием наподобие save и открывайте их в текстовом редакторе. Например у игры <a href="https://apps.apple.com/ru/app/sonic-dash/id1608888053" target="_blank">SonicDash+</a> в папке Documents лежит файл save.txt, в котором можно легко найти и изменить числа валюты, опыта и звёзд.</p>
  <figure id="k1ET" class="m_column">
    <img src="https://img1.teletype.in/files/8b/ad/8bad3e5d-4e70-4ffe-92be-471215deee5d.png" width="2255" />
  </figure>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="jFyk">Не шифруют данные обычно те игры, которым нечего защищать, то есть в которых нет внутриигровых покупок, поэтому таким способом валюту чаще всего можно накрутить в играх из Apple Arcade.</p>
  </section>
  <p id="Kdhj"></p>
  <p id="nVTC"></p>
  <p id="8F5p"></p>
  <h2 id="fTpO">Подделка чека</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Uv2n">Плюсы: простота и скорость (с джейлбрейком:)), данные о покупке сохраняются в кэш.</p>
    <p id="vFdY">Минусы: срабатывает в меньшинстве случаев, без джейлбрейка нужно подписывать и устанавливать приложения, взламывать, а затем переносить кэш с выполненной покупкой в оригинальные.</p>
  </section>
  <p id="haGz"></p>
  <p id="jCz7"><br />Чек можно подделать при помощи следующих твиков: </p>
  <ul id="zVIq">
    <li id="efSP">LocalIAPStore</li>
    <li id="qGxO">iAP26</li>
    <li id="HFuD">Satella</li>
  </ul>
  <p id="M4LN">Функционал твиков примерно одинаковый, но </p>
  <ol id="pTUn">
    <li id="XZJj">крайне редко приложение ломается только одним из них,</li>
    <li id="pmrw">при покупке валюты в играх при активации двух или всех этих твиков одна покупка может засчитываться за две или три, из-за чего валюта накручивается быстрее,</li>
  </ol>
  <p id="0Yfq">поэтому с джейлбрейком есть смысл поставить все три твика.</p>
  <p id="uaEX">Без джейлбрейка возможно использовать только Satella.</p>
  <p id="6RzP"></p>
  <p id="5QWM"></p>
  <h3 id="f1BI"><strong>Установка инструментов</strong></h3>
  <p id="JFjk"><br />Если у вас <u>есть джейлбрейк</u>, добавьте в ваш менеджер пакетов <a href="https://rejail.ru/" target="_blank">репозиторий ReJail</a> установите <a href="https://rejail.ru/pack/iap26" target="_blank">iAP26</a> и <a href="https://rejail.ru/pack/localiapstore" target="_blank">LocalIAPStore</a>, добавьте <a href="https://paisseon.github.io/" target="_blank">репозиторий Paisseon,</a> найдите и установите Satella.</p>
  <figure id="DzMY" class="m_custom">
    <img src="https://img1.teletype.in/files/0f/3d/0f3d1999-7a54-40ca-9a25-aeafa67b7225.jpeg" width="361.77862595419833" />
  </figure>
  <p id="6LRs">Если <u>джейлбрейка нет</u>, нужно:</p>
  <p id="5xoY">Достать ipa файл приложения, которое хотите взломать, с просторов интернета. Можно попробовать дешифровать на <a href="https://armconverter.com/decryptedappstore/tw" target="_blank">этом сайте.</a></p>
  <p id="e78r">Скачать специальную версию Satella — <a href="https://github.com/Paisseon/SatellaJailed/blob/emt/SatellaJailed.dylib" target="_blank">SatellaJailed</a>.</p>
  <p id="oILy">Подписать и установить ipa взламываемого приложения, при этом вшив dylib Satella любым способом. О подписи и установке приложений читайте <a href="https://telegra.ph/Piratstvo-na-iOS-07-08" target="_blank">здесь</a>.</p>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="0HQQ">Важно! Для подписи не подойдут бесплатный семидневный сертификат (кроме bullfrog), а также корневой сертификат (troll), т.к. они не обладают правами на использование внутренних покупок.</p>
  </section>
  <p id="2HJB">Рассмотрим способ с вшиванием через eSign.</p>
  <p id="EdBj">Сохраните ранее скаченный файл dylib в eSign.</p>
  <p id="6X8y">При подписи приложения нажмите &quot;<em>Установить твик (dylib,framework,deb)</em>&quot;.</p>
  <figure id="3DEE" class="m_column">
    <img src="https://img3.teletype.in/files/6c/74/6c7416a3-c30c-4ab7-8bd9-825b192337e5.png" width="2048" />
  </figure>
  <p id="wOgQ">Выберите Satella и нажмите &quot;<em>OK</em>&quot;.</p>
  <figure id="WDkw" class="m_column">
    <img src="https://img1.teletype.in/files/c1/77/c17722de-bc31-40f9-9477-ddcf5bf25f81.png" width="2048" />
  </figure>
  <p id="VFPF">Подписывайте и устанавливайте дальше по плану.</p>
  <p id="8NXI"></p>
  <p id="KaU7"></p>
  <h3 id="PHgC"><strong>Настройка инструментов<br /></strong></h3>
  <p id="QzQJ">Рассмотрим важные настройки твиков.</p>
  <p id="ONwa"><strong>iAP26</strong> достаточно просто включить.</p>
  <figure id="IKGs" class="m_column">
    <img src="https://img1.teletype.in/files/4c/30/4c30ba14-1561-4792-bd98-a0c56bda21cd.png" width="1280" />
  </figure>
  <p id="fXoX">В настройках <strong>LocalIAPStore</strong> есть пункт &quot;<em>Enable Double Coins</em>&quot;, при включении которого в играх одна покупка валюты начинает считаться за две.</p>
  <figure id="dECy" class="m_column">
    <img src="https://img4.teletype.in/files/bf/1d/bf1df8f2-746c-4e50-b0ef-62dbf93898b9.png" width="1297" />
  </figure>
  <p id="s1ns">Чтобы открыть настройки <strong>SatellaJailed</strong>, вшитой в приложение, зайдите в установленное приложение и нажмите на &quot;звезду&quot;.</p>
  <figure id="DqAx" class="m_column">
    <img src="https://img4.teletype.in/files/3e/33/3e33d60a-3277-4f6c-87b1-2e32268a4c56.png" width="2048" />
  </figure>
  <p id="S6sU">В Satella есть возможность включить твик для всех приложений (&quot;<em>Global Injection</em>&quot;) или для определённых (&quot;<em>Enabled Apps</em>&quot;).</p>
  <p id="1C6e">&quot;<em>Sideloaded</em>&quot; сделает твик активным для приложений, установленнных не из App Store.</p>
  <p id="Rz7p">&quot;<em>Observer</em>&quot; срабатывает очень редко, но в некоторых приложениях, <u>пока он включен</u>, покупки будут считаться выполненными (таким образом, в кэш они не сохраняются).</p>
  <figure id="TU00" class="m_column">
    <img src="https://img1.teletype.in/files/0f/5e/0f5ee110-4c60-48a4-8977-4c7803d2ecf6.png" width="2813" />
  </figure>
  <p id="RvdP"></p>
  <h3 id="YMlx"><strong>Использование инструментов</strong></h3>
  <p id="ngj8"></p>
  <p id="V1zI">Запустите приложение, в котором хотите взломать покупку.</p>
  <p id="sg4M">Найдите покупку и попытайтесь выполнить её.</p>
  <p id="l43m">Нажмите &quot;<em>Отменить</em>&quot; во всплывающем окне.</p>
  <figure id="4xaE" class="m_column">
    <img src="https://img4.teletype.in/files/76/c0/76c0d170-4a98-4a17-8560-4537a26ffbb8.png" width="1275" />
  </figure>
  <p id="ueKz">Если твики могут взломать данное приложение, покупка выполнится. Если же она не выполнилась, этими твиками данное приложение не взломать.<br /><br />Данные о покупке сохраняются в файлы приложения. После взлома можно попробовать перенести кэш любым способом на другое устройство / в официальную версию приложения. Некоторые приложения поддаются переносу покупок, некоторые нет.</p>
  <p id="EGZx"><br /><br /></p>
  <h2 id="ec0s"></h2>
  <p id="GqLR"></p>
  <h2 id="pz7S">Редактирование оперативной памяти приложения</h2>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="k9WD">Плюсы: позволяет относительно быстро накрутить игровую валюту, включить премиум, данные сохраняются в кэш</p>
    <p id="MHB3">Минусы: Как правило может быть применён только на расходуемых покупках, без джейлбрейка нужно подписывать и устанавливать приложения, взламывать, а затем переносить кэш с выполненной накруткой в оригинальные приложения</p>
  </section>
  <h3 id="IGDD"><br /></h3>
  <p id="rOk3">К числу этих твиков относятся:</p>
  <ul id="g2QN">
    <li id="2LXL">iGameGod</li>
    <li id="7oEI">GameGemiOS</li>
  </ul>
  <p id="cXRH"><strong>iGameGod</strong> является современным и обновляющимся твиком, который использовать удобно и предпочтительно. Не смотря на это, он имеет два недостатка: в нём имеется встроенная реклама, а (редко) некоторые приложения при его активации начинают вылетать. <strong>GameGemiOS</strong> очень старый и работает только через терминал, вследствие чего не подойдёт для неуверенных пользователей, однако не имеет недостатков первого твика.</p>
  <p id="UjTV">Без джейлбрейка можно использовать только iGameGod.</p>
  <p id="bj4a"><br /></p>
  <h3 id="savR">Установка инструментов</h3>
  <p id="GxQJ"></p>
  <p id="Lfg6">Если у вас <u>есть джейлбрейк</u>, добавьте в ваш менеджер пакетов <a href="https://iosgods.com/repo/" target="_blank">репозиторий iOSGods,</a> найдите и установите iGameGod. <br />В случае желания опробовать также GameGemiOS,</p>
  <ol id="aVRj">
    <li id="Hwez">добавьте в ваш менеджер пакетов <a href="https://rejail.ru/" target="_blank">репозиторий ReJail</a> установите <a href="https://rejail.ru/pack/gamegem" target="_blank">GameGemiOS;</a></li>
    <li id="E4rQ">установите терминал, например NewTerm;</li>
    <li id="0CHU">по желанию для большего удобства установите команду автоматизации запуска GameGem.</li>
  </ol>
  <p id="upwd"><br />Если <u>джейлбрейка нет</u>, нужно:</p>
  <p id="iUtZ">Достать ipa файл приложения, которое хотите взломать, с просторов интернета. Можно попробовать дешифровать на <a href="https://armconverter.com/decryptedappstore/tw" target="_blank">этом сайте</a></p>
  <p id="vlcf">Скачать <a href="https://iosgods.com/igg" target="_blank">deb файл iGameGod</a>.</p>
  <p id="Sx30">Подписать и установить ipa взламываемого приложения, при этом вшив deb iGameGod любым способом. О подписи и установке приложений читайте <a href="https://telegra.ph/Piratstvo-na-iOS-07-08" target="_blank">здесь</a>.</p>
  <p id="znml">Рассмотрим способ с вшиванием через eSign.</p>
  <p id="e0Zd">Сохраните ранее скаченный файл deb в eSign.</p>
  <p id="x0EP">При подписи приложения нажмите &quot;<em>Установить твик (dylib,framework,deb)</em>&quot;.</p>
  <figure id="5r7q" class="m_column">
    <img src="https://img4.teletype.in/files/f9/cf/f9cf0ca2-13a2-4da4-87d2-1a3471aa0b12.png" width="2048" />
  </figure>
  <p id="lDpV">Выберите iGameGod и нажмите &quot;<em>OK</em>&quot;</p>
  <figure id="zClt" class="m_column">
    <img src="https://img1.teletype.in/files/09/0c/090c4799-5d17-4f79-8769-01e4c4d963ec.png" width="1984" />
  </figure>
  <p id="aEYb">Подписывайте и устанавливайте дальше по плану.</p>
  <p id="qXkB"></p>
  <p id="F3YI"></p>
  <h3 id="05ca">Использование инструментов</h3>
  <p id="2UAB"><br /><br />Если вы с джейлбрейком и устанавливали iGameGod как твик, откройте приложение iGameGod, найдите взламываемое приложение и активируйте</p>
  <figure id="j68a" class="m_column">
    <img src="https://img3.teletype.in/files/e6/a8/e6a87473-48ac-40aa-9074-b713596a112d.png" width="2048" />
  </figure>
  <p id="fIP7">Откройте взламываемое приложение, получите некоторое количество валюты и запомните его. Справа сверху увидите значок iGameGod. Нажмите на него.</p>
  <figure id="PNMZ" class="m_column">
    <img src="https://img3.teletype.in/files/2a/ef/2aefaec7-1a14-481b-b382-c6561a14468c.jpeg" width="2048" />
  </figure>
  <p id="Nip3">Нажмите на &quot;New Search&quot;</p>
  <figure id="AwJx" class="m_column">
    <img src="https://img1.teletype.in/files/cc/92/cc92964f-b72c-492b-889b-172ca8c432cd.jpeg" width="2048" />
  </figure>
  <p id="Gsd5">Выберите &quot;<em>Exact Search</em>&quot;</p>
  <figure id="jVs7" class="m_column">
    <img src="https://img4.teletype.in/files/7b/cc/7bcc90b9-e9a1-4eb1-99cc-b93c3df34bf1.jpeg" width="2048" />
  </figure>
  <p id="L5xD">Нажмите на &quot;<em>*</em>&quot; и в выпадающем списке выберите &quot;<em>int32 i4</em>&quot;</p>
  <figure id="1Yo0" class="m_column">
    <img src="https://img1.teletype.in/files/08/b8/08b8b12b-e3e7-45ae-bdf8-289c1bf18509.jpeg" width="2135" />
  </figure>
  <p id="piGk">Впишите нынешнее количество валюты и нажмите &quot;Search&quot;</p>
  <figure id="NppS" class="m_column">
    <img src="https://img3.teletype.in/files/2d/0e/2d0e8935-ceff-4afa-a935-021eeb2abc48.jpeg" width="2048" />
  </figure>
  <p id="81aW">Скорее всего, вариантов нашлось много. В таком случае закройте iGameGod нажатием крестика.</p>
  <figure id="ko7R" class="m_column">
    <img src="https://img1.teletype.in/files/86/f4/86f44ad1-d0f9-496c-aa26-4773bd931d1b.jpeg" width="2048" />
  </figure>
  <p id="amsb">Измените количество валюты — потратьте её или приобретите. Запомните новое количество валюты и снова откройте iGameGod.</p>
  <p id="BKeC">Нажмите &quot;<em>Refine Search</em>&quot;.</p>
  <figure id="KZud" class="m_column">
    <img src="https://img3.teletype.in/files/ad/ed/adedff2a-87fb-4723-932b-582c2bae8937.jpeg" width="2048" />
  </figure>
  <p id="AhRQ">Снова нажмите &quot;<em>Exact Search</em>&quot;</p>
  <figure id="0pDZ" class="m_column">
    <img src="https://img4.teletype.in/files/bf/3b/bf3b9452-55b7-492c-bdb1-f497e68bbd90.jpeg" width="2048" />
  </figure>
  <p id="xRFu">Введите в поиск новое количество валюты и снова нажмите &quot;<em>Search</em>&quot;</p>
  <figure id="vNwc" class="m_column">
    <img src="https://img2.teletype.in/files/d9/8e/d98e538f-d49b-4b5d-9ea8-16afe77c15da.jpeg" width="2048" />
  </figure>
  <p id="Wl5Z">Скорее всего результатов найдётся несколько (если их всё ещё много, повторите действия с изменением количества). Нажмите нижнюю левую кнопку.</p>
  <figure id="GYxi" class="m_column">
    <img src="https://img2.teletype.in/files/1a/c2/1ac22010-ef97-4fe2-9a05-a423e1c3efcb.jpeg" width="2048" />
  </figure>
  <p id="ohu0">Нажмите нижнюю правую кнопку, которая выделит все результаты, затем нажмите &quot;<em>Edit selection</em>&quot;</p>
  <figure id="GVe2" class="m_column">
    <img src="https://img1.teletype.in/files/0b/0c/0b0c1520-6058-4dc7-b0a2-82cd0184125f.jpeg" width="2048" />
  </figure>
  <p id="GUbt">Введите желаемое количество и нажмите &quot;<em>Confirm</em>&quot;</p>
  <figure id="QzXE" class="m_column">
    <img src="https://img4.teletype.in/files/35/59/355964f3-bbf0-42b3-a02c-8f8a156c6715.jpeg" width="2048" />
  </figure>
  <p id="dLQX">Если число валюты в игре не изменилось, снова потратьте или получите её, после этого изменения должны закрепиться. </p>
  <figure id="QxA7" class="m_column">
    <img src="https://img1.teletype.in/files/4f/da/4fdaa3c2-950b-4bcc-83f2-4533c56d3157.jpeg" width="2048" />
  </figure>
  <p id="daSp">Чтобы накрутить другой показатель, нажмите на лупу в нижнем правом углу и начинайте всё по новой.</p>
  <figure id="dOfQ" class="m_column">
    <img src="https://img1.teletype.in/files/49/a1/49a1d871-d0b3-4b06-86f3-f723b6b52325.jpeg" width="2048" />
  </figure>
  <p id="XAya">Если нужные значения не ищутся, или после редактирования значения сбрасываются, значит данную игру так не взломать. Если приложение вылетает со включенным/вшитым iGameGod и у вас есть джейлбрейк, можно попробовать <strong>GameGemiOS</strong>.</p>
  <p id="P8e3"><br />Вам нужно последовательно ввести в установленный ранее терминал три команды:</p>
  <ol id="JZul">
    <li id="VODb">su</li>
    <li id="1mBz">Пароль от терминала (по умолчанию alpine)</li>
    <li id="ZseP">killall -9 GameGemNative &amp;&amp; GameGemNative</li>
  </ol>
  <p id="hGdx">Чтобы ускорить этот процесс, запустите установленную ранее команду. Она трижды скопирует нужный текст и откроет приложение терминала, каждый раз вам нужно будет только вставить скопированный текст и вернуться в команды.</p>
  <p id="GKVk">В процессе взлома нужно будет периодически открывать терминал, чтобы GameGemiOS работал и не зависал на загрузке.</p>
  <p id="XEan">Откройте взламываемое приложение, получите некоторое количество валюты и запомните его.</p>
  <figure id="1S14" class="m_column">
    <img src="https://img3.teletype.in/files/a3/78/a37802f8-694f-42bc-b9f7-0fc1b9e4846e.png" width="2048" />
  </figure>
  <p id="GSWb">Откройте GameGemiOS, перейдите на вкладку &quot;Scan&quot; и нажмите на пустой значок</p>
  <figure id="jk3Q" class="m_column">
    <img src="https://img2.teletype.in/files/58/dd/58ddbfa5-cea5-4190-970c-a0642aff7ea9.png" width="2048" />
  </figure>
  <p id="4jkl">Выберите взламываемое приложение</p>
  <figure id="jUYO" class="m_column">
    <img src="https://img2.teletype.in/files/db/0d/db0d8260-8eeb-4849-ae16-1c7091b7d83e.png" width="2048" />
  </figure>
  <p id="IzDp">Выберите &quot;Accurate&quot; и &quot;i32&quot;</p>
  <figure id="U6Do" class="m_column">
    <img src="https://img1.teletype.in/files/87/54/87541fb7-cac8-4c33-9596-514cb96181e6.png" width="2048" />
  </figure>
  <p id="MB1B">Впишите нынешнее количество валюты и нажмите &quot;<em>Search</em>&quot;</p>
  <figure id="mbx6" class="m_column">
    <img src="https://img1.teletype.in/files/cb/4e/cb4ee871-9b96-4274-a552-9b2717dfc8b1.png" width="2048" />
  </figure>
  <p id="r4jW">Скорее всего, вариантов нашлось много. В таком случае перейдите во взламываемое приложение и измените количество валюты — потратьте её или приобретите. </p>
  <p id="BOHb">Запомните новое количество валюты и снова откройте GameGemiOS.</p>
  <p id="vVgO">Введите в поиск новое количество валюты и снова нажмите &quot;<em>Search</em>&quot;.</p>
  <figure id="GSV7" class="m_column">
    <img src="https://img4.teletype.in/files/f9/79/f9794d6f-277e-4369-b15b-02fd25d98514.png" width="2048" />
  </figure>
  <p id="y0MJ">Скорее всего результатов найдётся несколько (если их всё ещё много, повторите действия с изменением количества). Нажмите нижнюю левую кнопку.</p>
  <figure id="EYTk" class="m_column">
    <img src="https://img1.teletype.in/files/46/31/46318d41-f644-47ce-94a4-5bafedda5dc2.png" width="2048" />
  </figure>
  <p id="IX3S">Выберите все варианты и нажмите &quot;<em>Modify</em>&quot;</p>
  <figure id="blpz" class="m_column">
    <img src="https://img1.teletype.in/files/05/16/05163718-a3e3-4565-bb2a-75b10c0454ea.png" width="2048" />
  </figure>
  <p id="XBq6">Введите нужное значение и нажмите &quot;Confirm&quot;</p>
  <figure id="9ktH" class="m_column">
    <img src="https://img1.teletype.in/files/49/d4/49d4d4ab-6e71-46e8-ac61-5063f1d4d948.png" width="2048" />
  </figure>
  <p id="ozF7">Если число валюты в игре не изменилось, снова потратьте или получите её, после этого изменения должны закрепиться. </p>
  <figure id="It38" class="m_column">
    <img src="https://img4.teletype.in/files/71/3c/713c4c48-750c-4c31-a8d0-7288dbcda4d4.png" width="2048" />
  </figure>
  <p id="Cabq">Чтобы накрутить другой показатель, нажмите &quot;<em>Reset</em>&quot; и начинайте всё по-новой</p>
  <figure id="DOuk" class="m_column">
    <img src="https://img3.teletype.in/files/26/79/26795dbc-0998-4b64-9846-b8f91ec07d5c.png" width="2048" />
  </figure>
  <p id="rIw0">Если нужные значения не ищутся, или после редактирования значения сбрасываются, значит данную игру так не взломать.</p>
  <p id="oYEx"></p>
  <p id="8Dr3"></p>
  <p id="a9LV"></p>
  <h2 id="0xpO">Подмена ответа от сервера проверки чека</h2>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="XiAB">Плюсы: срабатывает часто, не требует джейлбрейка, не требует компьютера</p>
    <p id="p5bA">Минусы: часто взлом не сохраняется в кэш, для его работы необходимо дополнительное платное приложение со включенным vpn, труден для неопытных пользователей, для самостоятельного взлома обычно необходим активный пробный период подписки / легально выполненная разовая покупка</p>
  </section>
  <p id="p43j"><br /><br />Вот мы и подошли к самой интересной части, к чему-то новому для русскоязычного сообщества, чем раньше пользовались лишь китайцы, о чём раньше вы могли слышать лишь мельком. Это единственный способ в равной степени удобный и с наличием джейлбрейка и без него, а так же способный &quot;взять&quot; наибольшее число приложений из всех рассмотренных здесь. Да, он непрост, но и не так сложен, как может показаться, и автор данной статьи уверен, что рано или поздно разобраться смогут многие. Вашему покорному слуге не удалось найти никаких инструкций по его применению в свободном доступе, а значит перед этой статьёй встаёт ответственная задача впервые изложить его, в полной мере и как насколько возможно доходчиво. Будем надеяться, у неё это получится.</p>
  <p id="bPYd"></p>
  <p id="TYhe"></p>
  <h3 id="u3fZ">Принцип работы</h3>
  <p id="nfZD"></p>
  <p id="avuZ">Вспомним теорию. Когда приложение получает чек, оно может отправить его для расшифровки на сервер. Сервер возвращает данные, содержащиеся в чеке. Если в нём <u>не</u> прописаны покупки, сервер так и &quot;скажет&quot;. Однако мы можем перехватить его ответ и подменить, дописав то, что захотим. Если допишем наличие выполненных покупок, приложение будет думать, что так и есть на самом деле. </p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="bXOj">Такой вид атаки называется MiTM — Man in The Middle (человек посередине), что обозначает хакера, перехватывающего информацию, передающуюся между сервером к устройством и изменяющего её. Подробнее можно узнать <a href="https://ru.m.wikipedia.org/wiki/%D0%90%D1%82%D0%B0%D0%BA%D0%B0_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0" target="_blank">на википедии.</a></p>
  </section>
  <p id="I1Sg"><br /></p>
  <h3 id="SCA0">Инструменты</h3>
  <p id="XVPB"><br />Чтобы перезватить запросы и ответы — трафик приложения, необходимы специальные приложения. Для перехвата они устанавливают свой профиль vpn, через который проходят все запросы, а также корневой сертификат, чтобы трафик расшифровывать.</p>
  <p id="BQra">Некоторые приложения для просмотра и изменения трафика:</p>
  <ul id="JEJE">
    <li id="fUrQ"><a href="https://apps.apple.com/ru/app/stash-rule-based-proxy/id1596063349" target="_blank">Stash</a>.</li>
    <li id="TAQl"><a href="https://apps.apple.com/ru/app/loon/id1373567447" target="_blank">Loon</a>. Не покупайте на общих аккаунтах! Перестанет работать через некоторое время, так как на одном аккаунте может быть не больше 5 устройств.</li>
    <li id="g5PT"><a href="https://apps.apple.com/ru/app/quantumult-x/id1443988620" target="_blank">Quantumult X</a>. Не покупайте на общих аккаунтах! Не будет работать, так как общие аккаунты добавляют в &quot;семьи&quot;, и Quantmult X будет куплен не на сам аккаунт, который вам выдают, а на аккаунт из одной с ним семьи. Вам предлагают скачать его через семейные покупки, а QX будет работать только будучи скаченным непосредственно с apple id, с которого его купили. Кроме того, на одном аккаунте может быть не более 3 устройств.</li>
    <li id="3xwH"><a href="https://apps.apple.com/ru/app/surge-5/id1442620678" target="_blank">Surge</a>. Для джейлбрейка есть <a href="https://t.me/rejail/1169454" target="_blank">взлом твиком</a> для версии 5.5.0.</li>
    <li id="QvS5"><a href="https://apps.apple.com/ru/app/egern/id1616105820" target="_blank">Egern</a>. Есть открытое <a href="https://testflight.apple.com/join/AzU6kAzX" target="_blank">бета-тестирование</a>, но обычно заполнено.</li>
    <li id="QYwF"><a href="https://apps.apple.com/ru/app/spider-proxy/id6451132116" target="_blank">Spider Proxy</a>. Для редактирования не рекомендуется.</li>
    <li id="5Rck"><a href="https://apps.apple.com/app/id1608857736" target="_blank">Hodor</a>. </li>
    <li id="BgI3"><a href="https://apps.apple.com/ru/app/proxyman-network-debug-tool/id1551292695" target="_blank">Proxyman</a>. Единственное приложение, котрое позволяет изменять ответы не скриптами, а редактировать руками, вручную всё дописывая и отправляя ответ. Этот функционал доступен даже в бесплатной версии, хоть и для одного запроса.</li>
    <li id="MJyt"><a href="https://apps.apple.com/app/id1522630336" target="_blank">HTTPS Traffic</a>.</li>
    <li id="tdoK"><a href="https://apps.apple.com/app/id1610958307" target="_blank">Storm Sniffer</a>.</li>
  </ul>
  <p id="VWL0">Только для просмотра:</p>
  <ul id="9jLs">
    <li id="wF94"><a href="https://apps.apple.com/ru/app/http-traffic-capture/id1585539533" target="_blank">Traffic Capture</a>.</li>
    <li id="K0Ph"><a href="https://apps.apple.com/app/id1463315864" target="_blank">iHTTP Tracker</a>.</li>
    <li id="hBFj"><a href="https://apps.apple.com/ru/app/http-catcher/id1445874902" target="_blank">HTTP Capture.</a></li>
    <li id="URe5"><a href="https://apps.apple.com/app/id1134218562" target="_blank">Charles</a>. Можно получить бесплатно на <a href="https://t.me/AppStops" target="_blank">общем аккаунте</a>. </li>
    <li id="aPM7"><a href="https://apps.apple.com/ru/app/mqtt-loupe/id1617148458" target="_blank">MQTT Loupe</a>. Бесплатный</li>
    <li id="JccB"><a href="https://apps.apple.com/ru/app/webproxytool-inspect-requests/id1578538118" target="_blank">WebProxyTool</a>. Бесплатный</li>
  </ul>
  <p id="WvQG">Только для изменения:</p>
  <ul id="n5SL">
    <li id="DklN"><a href="https://apps.apple.com/ru/app/shadowrocket/id932747118" target="_blank">Shadowrocket</a>. Есть и работает на общих аккаунтах (<em>бесплатно</em> <a href="https://appleid.wannaflix.net/" target="_blank">здесь</a>, платно <a href="https://plati.market/search/Shadowrocket" target="_blank">здесь</a>, <a href="https://myoa.ru/goods_info.php?id=3619010" target="_blank">здесь</a> или <a href="https://zakostore.ru/goods/3297729-shadowrocket-iphone-ios-ipad-appstore-podarok" target="_blank">здесь</a>).</li>
    <li id="9URX"><a href="https://apps.apple.com/ru/app/lancex/id1536754048" target="_blank">LanceX</a>.</li>
  </ul>
  <p id="C6dk">Взломанные ipa некоторых из данных приложений доступны для установки через Troll Store <a href="https://mega.nz/folder/3I53WbhI#AaZ63ro6ljb706VRDc-Tsg" target="_blank">здесь</a></p>
  <p id="EAd6">При покупке доступа к каналу со скриптами <a href="https://t.me/iOSAppsCache/874" target="_blank">M[i]TM[OS]</a> вы получаете наш общий аккаунт с рабочим Loon в бете и Shadowrocket, к которым вы будете иметь постоянный доступ, а значит сможете бесплатно обновлять и переустанавливать эти приложения.</p>
  <p id="sjIj">В данной статье будут рассмотрены Loon  и Shadowrocket.</p>
  <p id="q1aE"></p>
  <p id="Vu3v"></p>
  <h3 id="DRG1">Настройка инструментов</h3>
  <p id="J1wJ"></p>
  <p id="qz5v"><strong>Loon</strong></p>
  <p id="BAMI"><a href="loon://" target="_blank">Откройте Loon</a>.</p>
  <p id="d1yb">Перейдите в настройки.</p>
  <figure id="OXEn" class="m_column">
    <img src="https://img2.teletype.in/files/1b/c0/1bc0858d-0952-47d8-ac73-4d20b6af3cbe.png" width="2048" />
  </figure>
  <p id="xOvw">Найдите секцию &quot;Certificate Management&quot; и перейдите в неё.</p>
  <p id="7orQ">Нажмите &quot;Generate A New CA Certificate&quot;.</p>
  <figure id="Pv8b" class="m_column">
    <img src="https://img3.teletype.in/files/ad/e7/ade76015-4259-4ab2-b505-b900abb6bc0e.png" width="2048" />
  </figure>
  <p id="XT4g">Нажмите &quot;<em>Install CA Certificate To System</em>&quot;.</p>
  <figure id="xRxc" class="m_column">
    <img src="https://img4.teletype.in/files/38/7e/387e8eeb-3617-487a-9ee3-0badd49c4457.png" width="2048" />
  </figure>
  <p id="4VWp">Нажмите &quot;Разрешить&quot;</p>
  <figure id="UybA" class="m_column">
    <img src="https://img4.teletype.in/files/ba/da/badad373-a547-4b45-b56d-aad3be8e78bd.png" width="2048" />
  </figure>
  <p id="Wdup">Откройте приложение &quot;Настройки&quot;</p>
  <p id="Yfrw">Загруженный профиль будет висеть на главной странице. Откройте его.</p>
  <figure id="pMyO" class="m_retina">
    <img src="https://img3.teletype.in/files/2f/bf/2fbf3eb8-6688-4d3b-9c73-1ccc932ed206.png" width="375" />
  </figure>
  <p id="CyHT">Нажмите &quot;<em>Установить</em>&quot;</p>
  <figure id="lM2P" class="m_retina">
    <img src="https://img1.teletype.in/files/cd/0e/cd0e7209-1f07-46a9-a807-1133177ac5b7.png" width="540" />
  </figure>
  <p id="5Jqd">Введите пароль</p>
  <figure id="f0t4" class="m_retina">
    <img src="https://img1.teletype.in/files/cf/15/cf150fae-fddb-4f58-b6d5-1c04fbd8e52b.png" width="320" />
  </figure>
  <p id="dviV"> Нажмите &quot;<em>Установить</em>&quot; ещё два раза</p>
  <figure id="5xBw" class="m_retina">
    <img src="https://img2.teletype.in/files/9b/15/9b159fcf-6ea8-4dc4-9f0c-a7de42d100a6.png" width="540" />
  </figure>
  <p id="tyJo">В настройках перейдите по пути &quot;Основные&quot; → &quot;Об этом устройстве&quot; → Доверие сертификатам&quot;</p>
  <figure id="rrjH" class="m_column">
    <img src="https://img3.teletype.in/files/eb/78/eb781bac-5e67-46b3-9e9a-3b3edcece488.png" width="2251" />
  </figure>
  <p id="cl4i">Включите доверие сертификату Loon.</p>
  <figure id="Ih8T" class="m_column">
    <img src="https://img1.teletype.in/files/01/71/0171b022-14af-493d-a372-ebb7aa2f34ed.png" width="2048" />
  </figure>
  <p id="C1IP"><a href="loon://" target="_blank">Вернитесь в Loon</a>.</p>
  <p id="SqEm">Включите MiTM.</p>
  <p id="tO9V">Откройте раздел &quot;<em>Hosts</em>&quot;.</p>
  <p id="iPRF">Включите &quot;MiTM over HTTP/2&quot;</p>
  <figure id="yYcP" class="m_column">
    <img src="https://img3.teletype.in/files/eb/20/eb20771b-e8c0-436a-9588-49e4b85867c6.png" width="2048" />
  </figure>
  <p id="Sc94">Нажмите &quot;<em>+</em>&quot;.</p>
  <figure id="jJeU" class="m_column">
    <img src="https://img4.teletype.in/files/7f/b9/7fb9ca5b-9f85-4154-80f3-c77b04e62487.png" width="2047" />
  </figure>
  <p id="kAF6">Введите домен &quot;buy.itunes.apple.com&quot;. Это домен проверки чека от Apple, и он нужен для дешифровки соответствующего запроса.</p>
  <p id="TBBQ">Нажмите &quot;<em>Sure</em>&quot;.</p>
  <figure id="uujr" class="m_column">
    <img src="https://img1.teletype.in/files/8a/f1/8af1e791-41a1-41c2-990e-a1f40206342b.png" width="2048" />
  </figure>
  <p id="lYfP"></p>
  <p id="5LE2">Перейдите на вкладку &quot;Dashboard&quot;</p>
  <p id="f12F">Нажмите &quot;Edit&quot;</p>
  <figure id="Qa1j" class="m_column">
    <img src="https://img2.teletype.in/files/12/e6/12e665d1-616f-4eb1-b6bb-5dce5106c96f.png" width="2048" />
  </figure>
  <p id="0YI1">Здесь можно добавить или убрать ярлыки главного меню. Ниже показаны ярлыки, которые могут понадобиться. Обязательно должны присутствовать ярлыки &quot;Captured Session&quot; и &quot;Requests&quot;.</p>
  <figure id="qeN6" class="m_column">
    <img src="https://img1.teletype.in/files/8e/f0/8ef0c6b0-a3c6-46cf-8356-ae1ec3350e83.png" width="2048" />
  </figure>
  <p id="VcI7">Активируйте &quot;Captured Sessions&quot; нажатием на серый кружок.</p>
  <figure id="c5GQ" class="m_column">
    <img src="https://img2.teletype.in/files/90/f6/90f6c8da-196b-43c5-8c68-3c25eb0768bd.png" width="2048" />
  </figure>
  <p id="Q2l0">Loon готов к работе.</p>
  <p id="8bIk"><br /><strong>Shadowrocket</strong></p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="lQDq">Понадобится, если у вас iOS &lt; 16.4.0</p>
  </section>
  <p id="gBri"><a href="shadowrocket://" target="_blank">Откройте Shadowrocket</a>.</p>
  <p id="dIKE">Перейдите на вкладку &quot;<em>Настройки</em>&quot;.</p>
  <p id="bGYL">Откройте раздел &quot;<em>Язык</em>&quot;</p>
  <figure id="Wtpi" class="m_column">
    <img src="https://img4.teletype.in/files/b4/85/b48558e5-96a7-4d93-9e71-d08cf99f6c91.png" width="2048" />
  </figure>
  <p id="O1Vb">Выберите &quot;<em>English</em>&quot;, английский. Без этого шага не всё будет работать из-за бага.</p>
  <figure id="7qIt" class="m_column">
    <img src="https://img4.teletype.in/files/3d/f7/3df74c14-3c8c-4f8d-8419-87d99c89aee7.png" width="2048" />
  </figure>
  <p id="hSBu">Перейдите на вкладку &quot;<em>Config</em>&quot;</p>
  <p id="RvuU">Откройте раздел &quot;<em>HTTPS Decryption</em>&quot;.</p>
  <figure id="wIjJ" class="m_column">
    <img src="https://img4.teletype.in/files/74/88/7488b8b3-83a6-4919-b451-6b8c066bcb09.png" width="2048" />
  </figure>
  <p id="kKnd">Включите раздел &quot;HTTPS Decryption&quot;.</p>
  <figure id="ch18" class="m_column">
    <img src="https://img3.teletype.in/files/a0/63/a0634599-fd56-4d2d-93a2-26fc559265f1.png" width="2048" />
  </figure>
  <p id="qOcI">Нажмите &quot;<em>Generate A New CA Certificate</em>&quot; дважды</p>
  <figure id="jlKY" class="m_column">
    <img src="https://img3.teletype.in/files/ab/f8/abf8cdde-6494-423b-b20a-c161928d5987.png" width="2048" />
  </figure>
  <p id="bd78">Нажмите &quot;<em>Install CA Certificate to System</em>&quot;.</p>
  <figure id="p6L1" class="m_column">
    <img src="https://img4.teletype.in/files/b4/35/b435c172-87c4-4a17-82f7-0813dff8b0ee.png" width="2048" />
  </figure>
  <p id="DGwE">Установите сертификат и включите ему доверие, как в случае с Loon.</p>
  <p id="ErOt">Shadowrocket готов к работе.</p>
  <p id="HMil"><br /></p>
  <h3 id="JOmQ">Отслеживание запросов и просмотр ответов</h3>
  <p id="sSst"></p>
  <p id="h6RX">Как мы помним, приложение посылает чек на сервер, а сервер расшифровывает его и возвращает информацию о покупках. Сейчас при помощи Loon мы вмешаемся в этот процесс и посмотрим, какие же данные возвращает сервер приложению.</p>
  <figure id="29Zz" class="m_column">
    <img src="https://img1.teletype.in/files/0c/c6/0cc62c3a-c538-496e-84bd-d4c97aae9eb8.jpeg" width="2100" />
  </figure>
  <p id="Y07e"><br />Для примера возьмём <a href="https://apps.apple.com/app/id1047223162" target="_blank">Adguard</a> как приложение с очень простым ответом от сервера. Установите его.</p>
  <p id="BVIp"><a href="https://www.nsloon.com/openloon/on" target="_blank">Включите Loon</a>.</p>
  <figure id="LUav" class="m_column">
    <img src="https://img4.teletype.in/files/38/f5/38f57e2d-d28b-4d72-af9d-2286d281d8e6.png" width="2048" />
  </figure>
  <p id="rww3">Запустите Adguard. Может понадобиться дойти до покупки и нажать &quot;Восстановить&quot;.</p>
  <p id="zSjn">Откройте Loon и перейдите в раздел &quot;Requests&quot;. Тут мы видим разнообразные запросы, которые приложение посылает к серверу. Например, при помощи запросов на домен filters.adtidy.org, оно загружает списки рекламы для блокировки.</p>
  <p id="zNED">Loon можно <a href="https://www.nsloon.com/openloon/off" target="_blank">выключить</a>.</p>
  <figure id="R1Zp" class="m_column">
    <img src="https://img4.teletype.in/files/bd/eb/bdebd76c-72c4-4cd8-96a3-d65652af404f.png" width="2048" />
  </figure>
  <p id="Hyxd">Где-то среди этих запросов затерялся запрос на проверку чека для восстановления возможной покупки, и наша задача его найти. Надо искать запрос на адрес, содержащий что-то типа purchase, receipt, validate, verify.</p>
  <p id="22j4">Вот он, нашёлся: https://mobile-api.adguard.org/api/2.0/ios_validate_receipt/ADG_EXT.</p>
  <p id="gyVm">Нажмите на него.</p>
  <figure id="R6uW" class="m_column">
    <img src="https://img3.teletype.in/files/ec/9d/ec9d307f-5a7e-452c-8cc6-6fa426cc7903.png" width="2048" />
  </figure>
  <p id="SngD">Во вкладке General общая информация о запросе: статус завершения, время соединения, объём переданных данных и так далее.</p>
  <figure id="V0oE" class="m_column">
    <img src="https://img2.teletype.in/files/1c/f7/1cf7cc56-3637-4dc4-a82f-9577d378be5a.png" width="2048" />
  </figure>
  <p id="v1WB">Во вкладке Request информация непосредственно о запросе, об обращении к серверу. <br />В заголовках (REQUEST HEADER) передаётся базовая информация. <br />В теле (REQUEST BODY) передаётся то, ради чего создавался запрос: чек</p>
  <p id="HNGN">Нажмите на Json Viewer.</p>
  <figure id="6tvH" class="m_column">
    <img src="https://img4.teletype.in/files/f6/67/f66792f1-b4ec-474a-bcfa-c67e03af0e29.png" width="2048" />
  </figure>
  <p id="8WaN">Нашему взору открывается словарь (json) с закодированным в base64 для передачи в текстовом виде файлом чека. Мы опознаём его по его ключу — receipt_data. Раз в запросе передаётся чек, значит это тот запрос, который нам нужен.</p>
  <figure id="7vB5" class="m_column">
    <img src="https://img3.teletype.in/files/28/a7/28a7c88e-af33-4ab0-9c02-ab1ac5eb0289.png" width="2048" />
  </figure>
  <p id="WJNx">Перейдите во вкладку Response.<br />Здесь также можно увидеть заголовки и тело. Ответ о подписке передаётся в теле.</p>
  <p id="00RJ">Откройте тело ответа, нажав на &quot;JSON Viewer&quot;.</p>
  <figure id="Vztf" class="m_column">
    <img src="https://img4.teletype.in/files/76/9b/769bca62-1e27-4cd1-bcf8-0ee3415d8559.png" width="2048" />
  </figure>
  <p id="22FD">Перед нами открывается пустое тело. А что вы хотели? Подписка не выполнена, потому и ответ о ней пустой.</p>
  <figure id="elBP" class="m_column">
    <img src="https://img1.teletype.in/files/c6/c6/c6c6ec37-7780-4b7d-89b3-a2c946acf2bb.png" width="2048" />
  </figure>
  <p id="HDaO"><br />Чтобы увидеть, как должен выглядеть ответ при наличии подписки, необходимо оформить пробный период в Adguard.</p>
  <p id="tXk7">После этого переустановите Adguard, чтобы сбросились данные о подписке, повторите действия с отслеживанием запросов, найдите нужный и перейдите во вкладку &quot;<em>Response</em>&quot;. <br />Можно наблюдать ответ об активной подписке:</p>
  <pre id="b2EL" data-lang="javascript">{
  &quot;products&quot;: [
    {
      &quot;premium_status&quot;: &quot;ACTIVE&quot;,
      &quot;product_id&quot;: &quot;com.adguard.monthly&quot;,
      &quot;expiration_date&quot;: 1689343002000
    }
  ]
}</pre>
  <figure id="BgTZ" class="m_column">
    <img src="https://img2.teletype.in/files/19/29/1929b0fb-a3d6-47b3-9118-3c4d803692d0.png" width="2048" />
    <figcaption>На скриншоте FREE, потому что пробная подписка уже истекла</figcaption>
  </figure>
  <p id="Qok5">Данные в формате json, давайте разберём, за что отвечает каждое из значений. <br /><strong>premium_state</strong> означает состояние премиума. ACTIVE — активен и FREE — неактивен. <br /><strong>product_id</strong> — идентификатор конкретной совершённой покупки. В нашем случае com.adguard.monthly — идентификатор месячной подписки. Если вы активировали годовую  подписку, будет com.adguard.annualy<br /><strong>expiration_date</strong> — время истечения подписки. Но, кажется, что здесь не дата, а набор цифр; на самом деле она просто в формате unix. В человеческий вид её можно сконвертировать на многочисленных сайтах. Например, на <a href="https://converter.by/unixtime" target="_blank">этом</a> (при конвертировании убирайте три последних нуля). 1689343002<s>000</s> = 14.07.2023 13:56:42.</p>
  <p id="ijqw">У разных приложений приложений могут быть разные ответы, но, руководствуясь рассуждениями выше, старайтесь их разгадать и выделить важные значения.</p>
  <figure id="vEaU" class="m_column">
    <img src="https://img1.teletype.in/files/c4/9c/c49cf6ee-3973-4515-bfe6-5a7238cfbbc8.jpeg" width="2812" />
  </figure>
  <p id="Sgfo"><br /></p>
  <h3 id="XzlX">Создание скриптов</h3>
  <p id="M7VU"></p>
  <p id="lE5p">После того, как мы отследили и разобрали ответ, он, кажется, как на ладони, и руки чешутся поскорее изменить одно-два значения и получить заветный премиум. Однако всё не так просто. Дело в том, что для изменения ответа необходимо ознакомиться с таким понятием, как скрипты. </p>
  <p id="7god">В подобных Loon программах для изменения ответа используются специальные алгоритмы действий на языке java script. Конечно, в идеале, следовало бы вплотную изучить джава скрипт, однако для написания большинства скриптов для изменения ответа достаточно азов, а их мы разберём здесь и сейчас. </p>
  <figure id="3N9K" class="m_column">
    <img src="https://img1.teletype.in/files/48/53/48535a38-766d-4941-9718-3cfed880b99d.png" width="2048" />
  </figure>
  <p id="Xypb">Каждый скрипт имеет начало и конец. В начале скрипт должен получить тело, которое он будет редактировать, а в конце отдать его для последующей передачи целевому приложению. </p>
  <figure id="XEre" class="m_retina">
    <img src="https://img4.teletype.in/files/ba/7e/ba7e2f66-43f7-4465-aed2-6c58a2d01af6.png" width="497" />
  </figure>
  <p id="WckB">Тело ответа получается переменной &quot;<code>$response.body</code>&quot;. <br />Чтобы тело можно было редактировать, его необходимо декодировать. Для этого используется функция &quot;<code>JSON.parse</code>&quot;. &quot;<code>JSON.parse($response.body)</code>&quot; — декодирование тела ответа. <br />После того, как мы получили и декодировали тело, нужно его сохранить для дальнейшего редактирования. Сохраним его в переменную &quot;<code>body</code>&quot;. Переменная задаётся через функцию &quot;<code>let</code>&quot;. &quot;<code>let body = JSON.parse($response.body)</code>&quot; — задаём для переменной &quot;<code>body</code>&quot; значение декодированного тела. <br />Это и есть начало.</p>
  <figure id="AoVf" class="m_retina">
    <img src="https://img1.teletype.in/files/0b/2e/0b2e59cf-b36c-4d46-aff1-95796838c4fb.jpeg" width="496.5" />
  </figure>
  <p id="QVww">В конце изменённый ответ надо закодировать обратно и отдать для дальнейшей передачи взламываемому приложению. Функция &quot;<code>JSON.stringify</code>&quot; кодирует ответ. &quot;<code>JSON.stringify(body)</code>&quot; — кодирование содержимого переменной &quot;<code>body</code>&quot;. <br />Чтобы передать результат далее, необходимо заменить им содержимое тела ответа до изменения. Новое значение тела задаётся функцией &quot;<code>{body: ...}</code>&quot;. &quot;<code>{body: JSON.stringify(body)}</code>&quot; — меняем содержимое тела на закодированное значение переменной &quot;<code>body</code>&quot;. <br />Теперь надо закончить выполнение скрипта. Для этого используем функцию &quot;<code>$done</code>&quot;. &quot;<code>$done({body: JSON.stringify(body)})</code>&quot; — конец выполнения скрипта с заменой содержимого тела на закодированное значение переменной &quot;<code>body</code>&quot;.</p>
  <figure id="W2oq" class="m_retina">
    <img src="https://img2.teletype.in/files/91/4b/914b94b8-46dc-454d-baac-95c33ffc73bc.png" width="497" />
  </figure>
  <p id="vw5J">Получился скрипт, который :</p>
  <ol id="FUi2">
    <li id="NK3T">задаёт для переменной &quot;body&quot; значение декодированного тела,</li>
    <li id="QN7j">заменяет содержимое тела на закодированное значение переменной &quot;<code>body</code>&quot;.</li>
  </ol>
  <pre id="gxOJ" data-lang="javascript">let body = JSON.parse($response.body)

$done({body: JSON.stringify(body)})</pre>
  <p id="K7bn">Инными словами берётся значение тела и снова задётся этому телу. То есть по итогу ничего не меняется.</p>
  <p id="2Qi4"><br />Перейдём к самому главному — собственно изменению ответа скриптом.<br />Как уже было сказано, обычно ответ в формате json. Поэтому  потребуется знание структуры json, и тут уже не отвертеться: как было рекомендовано в начале статьи, придётся ознакомиться самому.</p>
  <p id="umiI">Самый простой способ редактирования тела ответа заключается в полной его замене. Мы пишем &quot;<code>body = ...</code>&quot;, вместо многоточия вписывая свой, заранее изменённый словарь. Вернёмся к Adguard. Выше мы получили словарь из ответа о подписке, истекающей в 13:56:42 14.07.2023. Предлагаю изменить дату её окончания на 31.12.2099 23:59:59. Конвертируем эту дату в unix формат, получая 4102444799, и добавляем 000. Зададим переменной &quot;<code>body</code>&quot; значение нового словаря:</p>
  <pre id="A96L" data-lang="javascript">body = {
  &quot;products&quot; : [
    {
      &quot;premium_status&quot; : &quot;ACTIVE&quot;,
      &quot;product_id&quot; : &quot;com.adguard.monthly&quot;,
      &quot;expiration_date&quot; : 4102444799000
    }
  ]
}</pre>
  <p id="S85t">Остаётся только добавить &quot;начало&quot; и &quot;конец&quot;, и скрипт готов:</p>
  <pre id="5rIz" data-lang="javascript">let body = JSON.parse($response.body);
body = {
  &quot;products&quot; : [
    {
      &quot;premium_status&quot; : &quot;ACTIVE&quot;,
      &quot;product_id&quot; : &quot;com.adguard.monthly&quot;,
      &quot;expiration_date&quot; : 4102444799000
    }
  ]
}
$done({body: JSON.stringify(body)});</pre>
  <p id="dNOa"><br />Рассмотрим на примере Adguard более тонкий метод, точечную замену значения без перезаписывания всего тела. В данном случае — это значение даты с ключом &quot;expiration_date&quot;. Чтобы заменить его, к нему надо прописать путь. Посмотрим на словарь, где лежит эта пара ключ-значение? В словаре вложен массив под названием &quot;products&quot;, значит первый объект в пути — products. Объекты в пути разделяются точками. Строим путь, начиная с названия переменной, получается &quot;<code>body.products.</code>&quot;. В массиве products один объект — ещё один словарь. Так как это массив, у того словаря нет ключа, а значит нам надо указать его номер. Номер указывается так: products[0] (products — ключ массива; нумерация начинается с нуля). Строим путь дальше: &quot; <code>body.products[0].</code>&quot;. В словаре в массиве products три ключа. Нас интересует &quot;expiration_date&quot;. Заканчиваем путь: &quot;<code>body.products[0].expiration_date</code>&quot;. Теперь задаём новое значение: &quot;<code>body.products[0].expiration_date = 4102444799000</code>&quot;. Весь скрипт будет выглядеть так:</p>
  <pre id="JKtp" data-lang="javascript">let body = JSON.parse($response.body);
body.products[0].expiration_date = 4102444799000
$done({body: JSON.stringify(body)});</pre>
  <p id="SGMV">В случае Adguard такой метод излишен, ведь, как мы помним, без пробного периода тела ответа пустое. А значит весь этот путь не имеет смысла, и сработает, только если оформлен пробный период и тела ответа содержит информацию о пробном периоде. Первый способ заменяет тело полностью, поэтому может работать и с пустым содержимым. Этот метод подходит в случаях, когда помимо информации о лицензии через этот запрос передаётся какая-либо другая важная меняющаяся информация, или время отправки запроса, замена которого на фиксированное значение сигнализирует приложению о подмене.</p>
  <p id="ikqA">Например, взглянем на ответ от <a href="https://apps.apple.com/app/id1265670676" target="_blank">Simpler</a>:</p>
  <pre id="UX4I" data-lang="javascript">{
  &quot;id&quot;: 5139330,
  &quot;level_id&quot;: 1,
  &quot;name&quot;: &quot;&quot;,
  &quot;provider&quot;: 4,
  &quot;is_purchased&quot;: 0,
  &quot;active_days_cnt&quot;: 0,
  &quot;reached_achievements&quot;: [],
  &quot;last_active_at&quot;: &quot;&quot;,
  &quot;notification_at&quot;: &quot;&quot;,
  &quot;league_unlock_at&quot;: null,
  &quot;gift_premium_till&quot;: &quot;&quot;,
  &quot;last_active_timezone&quot;: &quot;UTC&quot;,
  &quot;created_at&quot;: &quot;2023-03-14 18:11:23&quot;,
  &quot;image&quot;: &quot;&quot;,
  &quot;updated_at&quot;: &quot;2023-03-14 18:11:24&quot;,
  &quot;purchased_till&quot;: &quot;&quot;,
  &quot;email&quot;: &quot;&quot;,
  &quot;gift_premium&quot;: 0
}</pre>
  <p id="XZkG">И электронная почта, и уровень, и чего здесь только не передаётся. Нас интересуют только два ключа: &quot;is_purchased&quot; и &quot;purchased_till&quot;. Можем заменить только их:</p>
  <pre id="dBVV" data-lang="javascript">let body = JSON.parse($response.body);
body.is_purchased = 1
body.purchased_till = &quot;2099-12-31 23:59:59&quot;
$done({body: JSON.stringify(body)});</pre>
  <p id="WQcE"><br />В ещё более редких случаях требуется заменить множество одинаковых значений и прописывать путь до каждого слишком долго. Например этот случай — ответ от сервера для проверки apple buy.itunes.apple, который настолько длинный, что приводить его здесь излишне. Тогда можно использовать регулярные выражения. Регулярные выражения позволяют находить и заменять одинаковые ключи и значения или по заданному шаблону одним действием без прописывания пути к каждому. Здесь тоже придётся заняться самоподготовкой, однако базовый приём я всё же покажу.  Нам потребуется новая функция &quot;<code>replace()</code>&quot;. &quot;<code>replace(/\&quot;Ключ\&quot;:\&quot;.+?\&quot;/g, &quot;\&quot;Ключ\&quot;:\&quot;Новое значение\&quot;&quot;))</code>&quot; заменит все значения с заданным ключом на новые. Снова вернёмся к Adguard: нам нужно заменить пару ключ-значение «<code>&quot;expiration_date&quot; : 4102444799000</code>», значит полная функция будет выглядеть &quot;<code>replace(/\&quot;expiration_date\&quot;:\&quot;.+?\&quot;/g, &quot;\&quot;expiration_date\&quot;:\&quot;4102444799000\&quot;&quot;))</code>&quot;. В скрипте:</p>
  <pre id="mR2J" data-lang="javascript">let body = JSON.parse($response.body);
body = JSON.parse(JSON.stringify(body).replace(/\&quot;expiration_date\&quot;:\&quot;.+?\&quot;/g, &quot;\&quot;expiration_date\&quot;:\&quot;4102444799000\&quot;&quot;))
$done({body: JSON.stringify(body)});</pre>
  <p id="3pRX"><br />Порой приложения используют не свой сервер для проверки чека, а, как было сказано, сервер Apple, или сервера специальных компаний, специализирующихся на этом. RevenueCat, AppHud, Qonversion и другие. Для некоторых из них можно сделать универсальный скрипт, срабатывающий на всех приложениях с их проверкой.</p>
  <p id="QsEa"><br /></p>
  <h3 id="rQJ5">Применение скриптов</h3>
  <p id="mLpc"></p>
  <p id="JDnV"><strong>Через Loon</strong></p>
  <p id="lLTM">Скопируйте скрипт.</p>
  <p id="Ofwm">Включите скрипты.</p>
  <p id="fj7Y">Откройте раздел &quot;<em>Local JavaScript Files</em>&quot;.</p>
  <figure id="sMUJ" class="m_column">
    <img src="https://img2.teletype.in/files/d9/aa/d9aafb31-5cf9-4824-a386-1a8315a2ad82.png" width="2048" />
  </figure>
  <p id="rlrw">Нажмите на &quot;+&quot;.</p>
  <p id="I3Sp">Нажмите на &quot;<em>Create empty script</em>&quot;</p>
  <figure id="TQRh" class="m_column">
    <img src="https://img2.teletype.in/files/d5/df/d5dfaf39-9124-43e4-8e97-d0778dfa6c64.png" width="2047" />
  </figure>
  <p id="HilW">Введите любое название скрипта.</p>
  <p id="rqpt">Нажмите &quot;<em>Sure</em>&quot;.</p>
  <figure id="kXju" class="m_column">
    <img src="https://img4.teletype.in/files/bb/9f/bb9fb43e-40da-44d9-b488-7f6cf974e704.png" width="2048" />
  </figure>
  <p id="2CNG">Вставьте скрипт.</p>
  <figure id="oJbu" class="m_column">
    <img src="https://img2.teletype.in/files/99/04/9904ce4a-cdf0-43b7-a275-0da6f113511e.png" width="2048" />
  </figure>
  <p id="ScpJ">Скопируйте url-адрес, на который шёл запрос.</p>
  <p id="Fmjq">Перейдите в раздел &quot;<em>Scripts</em>&quot;.</p>
  <p id="J7MI">Нажмите на &quot;<em>+</em>&quot;</p>
  <figure id="OBrE" class="m_column">
    <img src="https://img4.teletype.in/files/f2/d2/f2d216a9-0bef-4e56-9285-99487fb6f72e.png" width="2047" />
  </figure>
  <p id="jCgg">Введите любое название.</p>
  <p id="Rv7p">В &quot;Script Type&quot; выберите &quot;http-response&quot;.</p>
  <p id="xtyV">В &quot;Script Location&quot; выберите &quot;Local&quot;</p>
  <p id="FcIp">Включите &quot;Need Body&quot;.</p>
  <figure id="A6qq" class="m_column">
    <img src="https://img4.teletype.in/files/f0/45/f0457165-ff34-41ba-b330-209a35da35fa.png" width="2048" />
  </figure>
  <p id="thgH">Нажмите на &quot;Script Name&quot;</p>
  <figure id="Wzru" class="m_column">
    <img src="https://img2.teletype.in/files/95/56/95567d4e-275c-48cd-af17-11551847335b.png" width="2048" />
  </figure>
  <p id="8v5U">Выберите скрипт, который только что создавали.</p>
  <figure id="m36m" class="m_column">
    <img src="https://img2.teletype.in/files/d0/14/d0140e6e-af7c-4a33-b28b-5c2f02d9e2bc.png" width="2048" />
  </figure>
  <p id="J54J">В &quot;Expression&quot; вставьте ссылку, на которую шёл запрос. Здесь снова может понадобиться знание регулярных выражений, если запрос о проверке идёт сразу на несколько адресов, возвращающих одинаковые ответы. Если адреса изменяются небольшими фрагментами, возьмите их в круглые скобки и перечислите через &quot;|&quot;. Например, выражение &quot;<a href="https://api.revenuecat.com/v1/" target="_blank">https://api.revenuecat.com/v1/</a>(receipts|subscribers)&quot; охватывает два адреса: &quot;<a href="https://api.revenuecat.com/v1/receipts" target="_blank">https://api.revenuecat.com/v1/receipts</a>&quot; и &quot;<a href="https://api.revenuecat.com/v1/subscribers" target="_blank">https://api.revenuecat.com/v1/subscribers</a>&quot;. &quot;.&quot; означает любой символ, &quot;.*&quot; — любое количество любых символов.</p>
  <figure id="Ugf5" class="m_column">
    <img src="https://img1.teletype.in/files/47/ba/47bab7eb-cd3f-4ebb-b47b-0c54710e7ad4.png" width="2048" />
  </figure>
  <p id="mCG7">Скопируйте домен вставленной ссылки.</p>
  <p id="yVWy">Нажмите на &quot;✔️&quot;</p>
  <figure id="2T0f" class="m_column">
    <img src="https://img2.teletype.in/files/58/19/58193040-5011-4886-aeb7-aaa5cdc6efc7.png" width="2048" />
  </figure>
  <p id="mWpP">Откройте раздел &quot;<em>Hosts</em>&quot;</p>
  <p id="gUFT">Нажмите на &quot;<em>+</em>&quot;</p>
  <figure id="DBKH" class="m_column">
    <img src="https://img2.teletype.in/files/10/31/1031c5c6-55e0-40be-81f7-a2e2c1253d72.png" width="2047" />
  </figure>
  <p id="kffq">Вставьте скопированный домен.</p>
  <p id="3AlJ">Нажмите &quot;<em>Sure</em>&quot;.</p>
  <figure id="ydCN" class="m_column">
    <img src="https://img3.teletype.in/files/6c/48/6c480b81-3924-4a10-aa79-54afbbf36c5b.png" width="2048" />
  </figure>
  <p id="OOpW"><a href="https://www.nsloon.com/openloon/on" target="_blank">Включите Loon</a>.</p>
  <figure id="Q1m0" class="m_column">
    <img src="https://img1.teletype.in/files/82/9c/829c6b90-c32c-4f98-9e73-9f014b7245b5.png" width="2048" />
  </figure>
  <p id="s0eM">Перейдите в Adguard.</p>
  <p id="Dysp">Подписка активировалась. Иногда это происходит сразу, иногда нужно нажать &quot;восстановить покупки&quot;.</p>
  <figure id="t0OQ" class="m_column">
    <img src="https://img1.teletype.in/files/0a/cb/0acb2653-8506-4753-a249-1004e21d594b.png" width="2048" />
  </figure>
  <p id="tAFs">Возвращаемся в Adguard и снова находим наш запрос. Видим зелёный значок скрипта на нём — верный признак того, что скрипт сработал.</p>
  <figure id="gw2c" class="m_column">
    <img src="https://img2.teletype.in/files/51/95/51952351-b7d6-4357-b660-cff989e6af90.png" width="2048" />
  </figure>
  <p id="3iLL">Можем увидеть логи скрипта, оригинальное и изменённое тело ответа для сравнения.</p>
  <p id="O6U0">Adguard достаточно один раз запустить со включенной заменой, подписка сохраняется в кэш и её можно перенести вместе с кэшем. Однако многие приложения проверяют подписку каждый раз и вруную включать Loon перед каждым запуском не удобно. Решение есть — в таком случае можно настроить автоматизацию на запуск. </p>
  <p id="dDYF">Откройте приложение &quot;<a href="https://apps.apple.com/app/id1462947752" target="_blank">Команды</a>&quot; на вкладке &quot;<em>Автоматизация</em>&quot;</p>
  <figure id="Au1U" class="m_custom">
    <img src="https://img2.teletype.in/files/5d/e2/5de22edd-2997-4479-a5f3-f541c71cc209.jpeg" width="343" />
  </figure>
  <p id="dd3t">Нажмите &quot;<em>Создать автоматизацию для себя</em>&quot;</p>
  <figure id="V0OD" class="m_custom">
    <img src="https://img4.teletype.in/files/ff/8d/ff8d41f2-b0c2-471e-aba6-76c112f6d997.jpeg" width="343" />
  </figure>
  <p id="GCs2">Найдите и выберите автоматизацию &quot;Приложение&quot;.</p>
  <figure id="31mh" class="m_custom">
    <img src="https://img1.teletype.in/files/0a/f8/0af82df7-3f2f-4e88-8a9f-1f26f88579b8.jpeg" width="343" />
  </figure>
  <p id="PFTG">Выберите взламываемое приложение.</p>
  <p id="ymp2">Нажмите &quot;<em>Далее</em>&quot;</p>
  <figure id="R7Uk" class="m_custom">
    <img src="https://img4.teletype.in/files/b6/ea/b6ea973e-bd38-4d0d-8b70-afb6035c20aa.jpeg" width="343" />
  </figure>
  <p id="yL3A">Вбейте в поиск по действиям &quot;Настроить vpn&quot; и выберите соответствующее действие.</p>
  <figure id="Y7Ha" class="m_custom">
    <img src="https://img1.teletype.in/files/c2/3a/c23a2778-aef5-430d-9ad9-9d56e6215819.jpeg" width="343" />
  </figure>
  <p id="kHaU">В действие нажмите на поле &quot;<em>VPN</em>&quot; и выберите Loon.</p>
  <figure id="plRu" class="m_custom">
    <img src="https://img2.teletype.in/files/98/fd/98fdd77e-b7ac-4eba-81e2-a0582f70bfea.jpeg" width="343" />
  </figure>
  <p id="MTuv">Нажмите &quot;<em>Далее</em>&quot;</p>
  <figure id="0sXl" class="m_custom">
    <img src="https://img2.teletype.in/files/91/f6/91f65ecb-149c-42d0-8450-ccf22d55f6f6.jpeg" width="343" />
  </figure>
  <p id="PnMD">Выключите &quot;<em>Спрашивать до запуска</em>&quot;.</p>
  <p id="3dMg">Нажмите &quot;<em>Готово</em>&quot; </p>
  <figure id="fHpC" class="m_custom">
    <img src="https://img3.teletype.in/files/60/d9/60d9d7b1-355a-4e39-8d87-1445d7f5d3de.jpeg" width="343" />
  </figure>
  <p id="PP34">Теперь при открытии приложения Loon будет включаться автоматически. Не забудьте только отключать &quot;Captured Session&quot; во избежании повышенного расхода батареи.</p>
  <p id="Cidd">Аналогично можно сделать автоматизацию на выключение Loon по закрытию приложения.</p>
  <figure id="WUda" class="m_custom">
    <img src="https://img4.teletype.in/files/f4/a7/f4a7d81a-4802-4c79-80ec-c2ae8d781ebc.jpeg" width="379.4528301886793" />
  </figure>
  <p id="kXHe">Но что делать, если ваша iOS ниже 16.4.0 и действия по настройке VPN нету? Тут в дело вступает Shadowrocket.</p>
  <p id="dTru">Скопируйте скрипт.</p>
  <p id="JDW8">Откройте Shadowrocket.</p>
  <p id="VXbG">Перейдите на вкладку &quot;<em>Config</em>&quot;</p>
  <p id="l35G">Нажмите на &quot;<em>i</em>&quot;</p>
  <figure id="1Gls" class="m_column">
    <img src="https://img4.teletype.in/files/31/d5/31d5f480-14e0-4730-8c75-5b1b6e230770.png" width="2047" />
  </figure>
  <p id="6MQD">Откройте раздел &quot;Scripts&quot;.</p>
  <figure id="3Fdg" class="m_column">
    <img src="https://img1.teletype.in/files/c7/6a/c76a0def-0559-48fc-84bb-5237035a254a.png" width="2048" />
  </figure>
  <p id="heG1">Введите любое название скрипта.</p>
  <p id="rLvG">Включите &quot;Requires Body&quot;</p>
  <figure id="tihK" class="m_column">
    <img src="https://img2.teletype.in/files/5a/5b/5a5b07ea-a353-4ce9-a482-0a5ed0e4cff6.png" width="2048" />
  </figure>
  <p id="JFnD">Нажмите на &quot;<em>i</em>&quot; напротив &quot;<em>Script Path</em>&quot;</p>
  <figure id="2N7Q" class="m_column">
    <img src="https://img1.teletype.in/files/ce/78/ce782226-5ac4-4613-8f0c-a0c7e10b5687.png" width="2048" />
  </figure>
  <p id="rHym">Нажмите &quot;<em>Add Script</em>&quot;</p>
  <figure id="EKpj" class="m_column">
    <img src="https://img4.teletype.in/files/ff/73/ff735b8f-86d1-4924-be14-2811ff47d9a8.png" width="2048" />
  </figure>
  <p id="SBGc">Вставьте скрипт.</p>
  <p id="sNKF">Введите любое название.</p>
  <p id="bXlK">Нажмите &quot;<em>Save</em>&quot;</p>
  <figure id="ipnp" class="m_column">
    <img src="https://img1.teletype.in/files/8b/be/8bbed4bb-a9b8-483c-af5e-8f6f00dc5426.png" width="2048" />
  </figure>
  <p id="gz71">Выберите созданный скрипт.</p>
  <figure id="HRRP" class="m_column">
    <img src="https://img4.teletype.in/files/b7/43/b743fe1b-ec19-47fb-a4d6-c468da3dc3f0.png" width="2048" />
  </figure>
  <p id="koIF">В &quot;Pattern&quot; вставьте ссылку, на которую шёл запрос или регулярное выражение, как в Loon.</p>
  <p id="MpLm">Нажмите &quot;<em>Save</em>&quot;</p>
  <figure id="XEDn" class="m_column">
    <img src="https://img4.teletype.in/files/3f/be/3fbe8654-85b2-47d2-8b41-02aa11904f94.png" width="2048" />
  </figure>
  <p id="kQAP">Откройте раздел &quot;HTTPS Decryption&quot;.</p>
  <figure id="8GWw" class="m_column">
    <img src="https://img4.teletype.in/files/74/88/7488b8b3-83a6-4919-b451-6b8c066bcb09.png" width="2048" />
  </figure>
  <p id="OGtZ">Начните создавать автоматизацию, как с Loon. </p>
  <p id="3pWQ">При создании вбейте в поиск по действиям &quot;Start Shadowrocket&quot;. Как мы можем наблюдать, у Shadowrocket есть своё собственное действие для включения (и выключения — &quot;Stop Shadowrocket&quot;), поэтому его можно использовать аж начиная с iOS 13 с появления автоматизаций.</p>
  <figure id="16am" class="m_column">
    <img src="https://img4.teletype.in/files/76/0b/760b81a8-eb79-4f5d-b68b-67119a19250e.png" width="2048" />
  </figure>
  <p id="iDiS"><br /></p>
  <p id="xTtS">Закончив чтение этого раздела, вы имеете представление о взломе через подмену ответа. Да, это не просто, однако, прочитав ещё несколько раз, попробовав сами, рано или поздно вы разберётесь. Главное — стремиться не сдаваться. У меня вот не было такой прекрасной статьи, и ничего, разобрался. Получить консультацию и ответы на вопросы от автора статьи или обсудить прочитанное с единомышленниками вы можете в чате канала M[i]TM[OS], приобретя к нему доступ.</p>
  <p id="c8wP"></p>
  <p id="GyAI"></p>
  <p id="3PQ1"></p>
  <h2 id="jfGZ">Перенос кэша</h2>
  <p id="Hb70"></p>
  <p id="NzpE"></p>
  <p id="Z6qm">Наконец мы подошли к финальной и самой части. Если после всех вышеописанных действий покупки не сбрасываются, значит они сохранились в кэш, и можно попробовать перенести их на другое устройство. Однако это отдельная большая история, нашедшая место в своей <a href="https://teletype.in/@s0mehack1ng/iOS-apps-cache-transfer#A109" target="_blank"><strong>персональной статье</strong></a>. </p>
  <p id="u1b1"></p>
  <p id="2GIH"></p>
  <p id="rkfd"></p>
  <p id="8FSe">А на этом всё, ставьте лайки, подписывайтесь на канал, оставляйте комментарии!</p>
  <p id="HZyw">Отдельное спасибо t.me/el_zari за посвящение в подмену запросов! Без него не было бы самого значимого метода этой статьи. Спасибо также t.me/Mortem_off и t.me/yarmukhamedov за помощь в освоении этого метода.</p>

]]></content:encoded></item></channel></rss>