Connect with us

Разработка

Как я удалил рекламу из приложения Spotify

Мой опыт удаления рекламы из приложения Spotify был очень интересным и позволил узнать про сложные уровни безопасности и маскировки, которые используют разработчики приложений для защиты своих продуктов.

Фото аватара

Опубликовано

/

     
     

В этой статье я хочу рассказать о том, как мне удалось удалить рекламу из приложения Spotify. Обращаю ваше внимание на то, что эта попытка была предпринята не для того, чтобы навредить компании, а для того, чтобы разобраться во внутреннем устройстве приложений и их механизмах безопасности.

Декомпиляция Spotify: первый шаг

Как я удалил рекламу из приложения Spotify

Мои поиски начались с декомпиляции приложения Spotify с помощью инструмента APKTool. Декомпиляция позволила мне заглянуть в исходный код приложения и внести необходимые изменения. Одним из важнейших изменений была вставка XML-кода в файл network_security_config.

Как я удалил рекламу из приложения Spotify

Как я удалил рекламу из приложения Spotify

<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
        <certificates src="user" />
    </trust-anchors>
</base-config>

Это, казалось бы, незначительное изменение стало важным шагом на пути к пониманию того, как приложение Spotify взаимодействует со своими серверами. Оно позволило мне провести Man-in-the-Middle исследование приложения с помощью соответствующих программ. Я установил свой сертификат на смартфон и через xml-изменение разрешил приложению доверять сертификатам, добавленным пользователем, для подключения по протоколу https.

Как я удалил рекламу из приложения Spotify

Анализ зашифрованных API-запросов

Spotify, как и большинство других приложений, использует HTTPS для шифрования своих API-запросов, что затрудняет расшифровку их содержимого. Однако, используя MITM-атаку, я смог эффективно обойти шифрование и просмотреть тело запроса. Этот шаг позволил мне определить конечные точки, отвечающие за получение рекламы в приложении, а также конечную точку, используемую для сообщения о сбоях или проблемах, например о невозможности получить рекламу из приложения.

Пример того, как может работает MITM-программа

Пример того, как может работает MITM-программа

Поиск иголки в стоге сена обфусцированного кода

Следующее препятствие, с которым я столкнулся, — это поиск и модификация кода, отвечающего за выполнение API-запросов. Кодовая база приложения Spotify оказалась далеко не простой: в ней присутствовал обфусцированный код с загадочными именами переменных a, b, x и y. Еще более сложным оказалось то, что декомпилированный код был написан не на Java, а на Smali — низкоуровневом языке программирования, используемом в приложениях для Android.

Для тех, кто не знаком со Smali, важно понимать, что это человекочитаемое представление байткода Dalvik, используемого в Android-приложениях. Работа со Smali-кодом значительно сложнее, чем с Java, что делает реверс инжиниринг сложной задачей.

Настойчивость оправдывает себя: редактирование кода Smali

Несмотря на все эти трудности, я упорно продолжал работать, посвятив три дня скрупулезному поиску кода Smali. Мой прорыв произошел в виде строки комментария, намекающей на назначение определенного участка кода. Им оказался слой-перехватчик, отвечающий за запросы к API.

Здесь я отредактировал код Smali таким образом, чтобы перехватывать и проверять набор URL-адресов, используемых для получения рекламы, и еще один URL-адрес, используемый для сообщения о сбоях или отклонениях в работе приложения. Выборочно заблокировав эти URL-адреса, я смог успешно обойти рекламу в Spotify.

Заключение

Мой опыт удаления рекламы из приложения Spotify был очень интересным и позволил узнать про сложные уровни безопасности и маскировки, которые используют разработчики приложений для защиты своих продуктов. Важно отметить, что мои намерения не были злонамеренными, и я настоятельно не рекомендую другим предпринимать подобные действия.

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

В конечном итоге мое путешествие преподало мне ценные уроки о внутреннем устройстве приложений и о важности ответственного подхода к изучению цифрового ландшафта. Хотя мой опыт, возможно, и не приведет к созданию Spotify без рекламы для всех, я надеюсь, что он поможет лучше понять тонкости работы приложений, которыми мы пользуемся каждый день.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: