Поддержка
Круглосуточная поддержка

Позвоните

Бесплатно по России:
8-800-333-79-32

ЧаВо | Форум

Ваши запросы

  • Все: -
  • Незакрытые: -
  • Последний: -

Позвоните

Бесплатно по России:
8-800-333-79-32

Свяжитесь с нами Незакрытые запросы: 

Профиль

Профиль

Android.MagicAd.1

Добавлен в вирусную базу Dr.Web: 2026-03-24

Описание добавлено:

SHA1-хеш:

  • 17f77fdea2c6bfaf9919f9e44311df7a058046f8

Описание

Android.MagicAd.1 — это троянская программа для устройств под управлением ОС Android, предназначенная для демонстрации рекламы. Злоумышленники встраивают ее в игры и приложения различного типа (например, утилиты для оптимизации работы системы, медиаплееры, инструменты для работы с документами, программы, помогающие следить за здоровьем), которые затем распространяют под видом безобидного ПО. Первые версии трояна ориентировочно появились в 2025 году и встречались в каталогах GetApps (Xiaomi Store) и Samsung Store. Текущие варианты были выявлены в каталоге GetApps.

Android.MagicAd.1 использует ряд техник обхода ограничений безопасности современных версий ОС Android с целью отображения рекламы в фоновом режиме. Эти методики ориентированы на устройства определенных производителей.

Принцип действия

Управление

Для управления Android.MagicAd.1 предусмотрено два типа конфигураций:

  • базовая конфигурация, встроенная в троян;
  • конфигурация, поступающая через SolarEngine SDK.

Базовая конфигурация

Базовая конфигурация содержит параметры показа рекламы, а также настройки самого вредоносного приложения. Она может обновляться через Firebase Remote Config.

Пример базовой конфигурации:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<long name="CONIFG_IAP_NOTIFICATION_SHOW_TIMES" value="10" />
<long name="CONIFG_DISABLE_ADJUST_DAY" value="8" />
<boolean name="CONIFG_DISABLE_CHARTBOOST" value="false" />
<boolean name="CONIFG_LX_AD" value="true" />
<boolean name="CONIFG_DELAY_DATA_FINDER" value="false" />
<boolean name="CONIFG_OPEN" value="true" />
<boolean name="CONIFG_DISABLE_AD_TWICE" value="false" />
<boolean name="CONIFG_DELAY_SOLAR_EVENT" value="false" />
<long name="CONIFG_ORGANIC_WAIT_AD_MINUTE_AMAZON" value="1500" />
<boolean name="KEY_WAIT_HIDE" value="false" />
<string name="KEY_CHANNEL">Organic</string>
<boolean name="CONIFG_DISABLE_SHOW_MAIN" value="false" />
<string name="SOLAR_ATTRIBUTION_SUCCESS_has_day">20260414</string>
<boolean name="CONIFG_DISABLE_PICASSOTT" value="false" />
<string name="REFERRER_REMOTE_DISABLE_REFERRER_FALSE_has_day">20260414</string>
<string name="CONIFG_IAP_REMIND_LATER_DAY"></string>
<string name="REFERRER_SKIP_INIT_has_day">20260414</string>
<boolean name="CONIFG_CROSS_SET_TIME" value="true" />
<boolean name="CONIFG_DISABLE_OPEN" value="false" />
<boolean name="KEY_HAS_SEND_EXTERNAL_EVENT" value="true" />
<boolean name="CONIFG_TOPON_AUTO" value="true" />
<boolean name="CONIFG_IAP_ENABLE" value="true" />
<string name="CONFIG_ENABLE_HIDDEN_ICON_has_day">20260414</string>
<string name="SOLAR_NOT_FROM_SOLAR_has_day">20260414</string>
<boolean name="CONIFG_DISABLE_ADJUST" value="false" />
<string name="RISK_IP_NOT_has_day">20260414</string>
<long name="CONIFG_ORGANIC_WAIT_MINUTE_AMAZON" value="480" />
<boolean name="KEY_SOLAR_CALLBACK" value="true" />
<boolean name="CONIFG_RETURN_REMOTE_CONFIG" value="true" />
<string name="CONFIG_INIT_LOCAL_ENABLE_has_day">20260414</string>
<boolean name="CONIFG_DISABLE_DELAY_HIDE" value="true" />
<long name="CONIFG_ADSHOW_TIMES_FOR_CONVERSION" value="30" />
<boolean name="CONIFG_ENABLE_SEND_ONCE" value="false" />
<string name="HIDE_DIRECT_has_day">20260414</string>
<int name="KEY_DEVICE_ACTIVE_DAY" value="1" />
<boolean name="CONIFG_DELAY_SOLAR" value="false" />
<long name="CONIFG_SHOW_AD_LOADING_TIME" value="300" />
<long name="KEY_DEVICE_INIT_TIME" value="1776159084547" />
<boolean name="CONIFG_FORCE_HIDE_AMAZON" value="false" />
<boolean name="CONIFG_ONLINE_TIME_EMPTY_PASS" value="false" />
<boolean name="CONIFG_HAS_REMOTE_CONFIG" value="true" />
<long name="CONIFG_SHOW_AD_FINISH_TIME" value="5000" />
<string name="CONFIG_ENTER_has_day">20260414</string>
<long name="CONIFG_DELAY_ENABLE_MINITE" value="30" />
<string name="DEVICE_NOT_ORGANIC_has_day">20260414</string>
<string name="SOLAR_SET_LISTENER_has_day">20260414</string>
<string name="CONFIG_SUCCESS_has_day">20260414</string>
<long name="CONIFG_IAP_AD_INTERVAL" value="20" />
<long name="CONIFG_SHOW_AD_DELAY_TIME" value="300" />
<long name="CONIFG_ALL_INTERVAL_SECOND" value="60" />
<boolean name="CONIFG_SHOW_AD_JUMP" value="false" />
<string name="SOLAR_INIT_has_day">20260414</string>
<string name="CONIFG_AMAZON_ID"></string>
<string name="CONIFG_SOLAR_CHANNEL"></string>
<string name="ACTION_ENTER_SZ_has_day">20260414</string>
<long name="CONIFG_IAP_INTERVAL" value="7200000" />
<string name="REFERRER_LOCAL_DISABLE_REFERRER_FALSE_has_day">20260414</string>
<boolean name="CONIFG_ENABLE_ADJUST_LIMIT" value="false" />
<boolean name="CONIFG_DISABLE_CAN_SHOW_SEND" value="false" />
<string name="CONIFG_DISABLE_HIDE_REGULAR"></string>
<boolean name="CONIFG_FORCE_CLOSE_AD" value="true" />
<string name="CONIFG_REFERRER_REGULAR"></string>
<boolean name="CONIFG_DISABLE_ICON" value="false" />
<boolean name="KEY_HAS_HIDE" value="true" />
<string name="CAN_SHOW_BEFORE_IN_INTERVAL_has_day">20260414</string>
<long name="CONIFG_FIRST_INTERVAL" value="30" />
<boolean name="CONIFG_ENABLE_ORGANIC_CONVERT" value="false" />
<string name="CONIFG_IAP_JSON"></string>
<boolean name="KEY_DEVICE_INITED" value="true" />
<boolean name="CONIFG_LX_AD_ABTEST" value="false" />
<string name="CONIFG_IAP_PACKAGENAME">com.adrremover.ffilemanager</string>
<long name="CONIFG_TIME" value="1776159084664" />
<boolean name="CONIFG_DISABLE_SEND_DAY" value="false" />
<string name="CONIFG_MAX_NETWORK_ID"></string>
<boolean name="CONIFG_ENABLE_ORGANIC_AMAZON_CONVERT" value="false" />
<int name="KEY_AD_SHOW_TIMES" value="5" />
<long name="CONIFG_PERIOD_INTERVAL_SECOND" value="30" />
<boolean name="CONIFG_ENABLE_ENTER_MAIN_YANDEX" value="false" />
<long name="CONIFG_REVENUE_DISCOUNT" value="70" />
<boolean name="CONIFG_GCLID_VALID_CHANNEL" value="false" />
<boolean name="CONIFG_ENABLE_REFERRER_FB" value="true" />
<string name="KEY_SOLAR_JSON">{&quot;account_id&quot;:&quot;&quot;,&quot;ad_type&quot;:&quot;&quot;,&quot;adcreative_id&quot;:&quot;&quot;,&quot;adcreative_name&quot;:&quot;&quot;,&quot;adcreative_type&quot;:&quot;&quot;,&quot;adgroup_id&quot;:&quot;&quot;,&quot;adgroup_name&quot;:&quot;&quot;,&quot;adplan_id&quot;:&quot;&quot;,&quot;adplan_name&quot;:&quot;&quot;,&quot;attribution_categories&quot;:&quot;&quot;,&quot;attribution_event_name&quot;:&quot;&quot;,&quot;attribution_time&quot;:&quot;2026-04-02 23:24:49&quot;,&quot;attribution_touch_type&quot;:&quot;&quot;,&quot;attribution_type&quot;:&quot;&quot;,&quot;callback_id&quot;:&quot;&quot;,&quot;channel_id&quot;:&quot;-1&quot;,&quot;channel_name&quot;:&quot;自然量&quot;,&quot;click_id&quot;:&quot;&quot;,&quot;client_custom_params_1&quot;:&quot;&quot;,&quot;client_custom_params_10&quot;:&quot;&quot;,&quot;client_custom_params_2&quot;:&quot;&quot;,&quot;client_custom_params_3&quot;:&quot;&quot;,&quot;client_custom_params_4&quot;:&quot;&quot;,&quot;client_custom_params_5&quot;:&quot;&quot;,&quot;client_custom_params_6&quot;:&quot;&quot;,&quot;client_custom_params_7&quot;:&quot;&quot;,&quot;client_custom_params_8&quot;:&quot;&quot;,&quot;client_custom_params_9&quot;:&quot;&quot;,&quot;conversion_id&quot;:&quot;&quot;,&quot;custom_params_1&quot;:&quot;&quot;,&quot;custom_params_10&quot;:&quot;&quot;,&quot;custom_params_2&quot;:&quot;&quot;,&quot;custom_params_3&quot;:&quot;&quot;,&quot;custom_params_4&quot;:&quot;&quot;,&quot;custom_params_5&quot;:&quot;&quot;,&quot;custom_params_6&quot;:&quot;&quot;,&quot;custom_params_7&quot;:&quot;&quot;,&quot;custom_params_8&quot;:&quot;&quot;,&quot;custom_params_9&quot;:&quot;&quot;,&quot;impression_id&quot;:&quot;&quot;,&quot;install_time&quot;:&quot;2026-04-02 23:24:46&quot;,&quot;placement_id&quot;:&quot;&quot;,&quot;report_time&quot;:&quot;2026-04-02 23:24:48&quot;,&quot;request_id&quot;:&quot;&quot;,&quot;ry_touchpoint_ts&quot;:&quot;&quot;,&quot;site_id&quot;:&quot;&quot;,&quot;site_name&quot;:&quot;&quot;,&quot;turl_campaign_id&quot;:&quot;&quot;,&quot;turl_campaign_name&quot;:&quot;&quot;,&quot;turl_id&quot;:&quot;&quot;}</string>
<boolean name="CONIFG_MTG_APP" value="true" />
<string name="STRATEGY_XIAOMI_has_day">20260414</string>
<string name="CONIFG_AD_PLAN_NAME_REGULAR"></string>
<int name="KEY_AD_SHOW_TIMES_1_DAY" value="5" />
<long name="CONIFG_FAIL_TIMES_LIMIT" value="0" />
<boolean name="CONIFG_AUTO_CLICK_MY_OFFER" value="true" />
<boolean name="CONIFG_ENABLE_NOT_SET" value="false" />
<string name="KEY_IP">device_ip</string>
<boolean name="CONIFG_DISABLE_EVENT" value="false" />
<boolean name="CONIFG_ENABLE_REFERRER_DECRYPT" value="true" />
<boolean name="CONIFG_LOCAL_ENABLE" value="true" />
<string name="CAN_SHOW_BEFORE_SCREEN_LOCK_has_day">20260414</string>
<string name="CONFIG_REMOTE_ENABLE_has_day">20260414</string>
<boolean name="CONIFG_DISABLE_AD_ACTIVITY" value="false" />
<string name="DEVICE_CONFIG_ENABLE_has_day">20260414</string>
<boolean name="CONIFG_DISABLE_REFERRER" value="false" />
<long name="CONIFG_ORGANIC_WAIT_MINUTE" value="720" />
<long name="CONIFG_CLICK_INTERVAL_SECOND" value="60" />
<long name="KEY_DEVICE_INIT_TIME_ONLINE" value="1776159085000" />
<boolean name="CONIFG_SHOW_AD_JUMP_ABTEST" value="true" />
<string name="CONIFG_RISK_IP"></string>
<long name="CONIFG_IAP_TOTAL_SHOW_TIMES" value="5" />
<boolean name="CONIFG_ENABLE_GCLID" value="false" />
<boolean name="CONIFG_ENABLE_AD_EVENT" value="false" />
<boolean name="CONIFG_SHOW_AD_DELAY" value="true" />
</map>

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

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

{
    "entries": {
        "CONIFG_ALL_INTERVAL_SECOND": "60",
        "CONIFG_CLICK_INTERVAL_SECOND": "60",
        "CONIFG_PERIOD_INTERVAL_SECOND": "30",
        "FirstInterval": "30"
    },
    "appName": "com.supermax.clenauppro",
    "state": "UPDATE",
    "templateVersion": "1"
}

Конфигурация SolarEngine SDK

В конфигурации от SolarEngine SDK указаны параметры для сбора статистики о показанной рекламе. Пример такой конфигурации:

{
    "data": {
        "user_data": {
            "account_id": "",
            "ad_type": "",
            "adcreative_id": "",
            "adcreative_name": "",
            "adcreative_type": "",
            "adgroup_id": "",
            "adgroup_name": "",
            "adplan_id": "",
            "adplan_name": "",
            "attribution_categories": "",
            "attribution_event_name": "",
            "attribution_time": "2026-04-02 23:24:49",
            "attribution_touch_type": "",
            "attribution_type": "",
            "callback_id": "",
            "channel_id": "-1",
            "channel_name": "自然量",
            "click_id": "",
            "client_custom_params_1": "",
            "client_custom_params_10": "",
            "client_custom_params_2": "",
            "client_custom_params_3": "",
            "client_custom_params_4": "",
            "client_custom_params_5": "",
            "client_custom_params_6": "",
            "client_custom_params_7": "",
            "client_custom_params_8": "",
            "client_custom_params_9": "",
            "conversion_id": "",
            "custom_params_1": "",
            "custom_params_10": "",
            "custom_params_2": "",
            "custom_params_3": "",
            "custom_params_4": "",
            "custom_params_5": "",
            "custom_params_6": "",
            "custom_params_7": "",
            "custom_params_8": "",
            "custom_params_9": "",
            "impression_id": "",
            "install_time": "2026-04-02 23:24:46",
            "placement_id": "",
            "report_time": "2026-04-02 23:24:48",
            "request_id": "",
            "ry_touchpoint_ts": "",
            "site_id": "",
            "site_name": "",
            "turl_campaign_id": "",
            "turl_campaign_name": "",
            "turl_id": ""
        }
    },
    "status": 0
}

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

Противодействие анализу

При запуске Android.MagicAd.1 в первую очередь проверяет окружение на предмет наличия признаков его анализа.

1. Проверяет IP-адрес зараженного устройства, используя для этого зашитый в него черный список RISK_IP. Если первые 3 октета сетевого адреса устройства совпадают с одной из позиций данного списка, реклама демонстрироваться не будет. Обновление списка выполняется через Firebase Remote Config.

#drweb

Фрагмент черного списка IP-адресов

2. Проверяет название модели и бренда устройства, сравнивая их со своим черным списком. Список содержит стандартные имена, которые используются в ряде эмуляторов.

#drweb

Черный список названий моделей устройств и брендов, относящихся к эмуляторам

3. Проверяет идентификаторы advertising_id:

ContentResolver contentResolver0 = context0.getContentResolver();
Settings.Secure.getInt(contentResolver0, "limit_ad_tracking");
String s1 = Settings.Secure.getString(contentResolver0, "advertising_id");

#drweb

Черный список идентификаторов

Черный список идентификаторов может пополняться через Firebase Remote Config.

При наличии совпадений троян не будет демонстрировать рекламу.

Если совпадений нет, вредоносная программа получает обновленную конфигурацию через Firebase Remote Config и далее проверяет в ней параметр DISABLE_REFERRER. Если его значение true, Android.MagicAd.1 скрывает свой значок и начинает показ рекламы. В более ранних версиях трояна этот параметр изначально задан в настройках приложения.

Если значение параметра не true, троян проверяет, была ли его установка органической. Для этого проверяется значение параметра CONFIG_INSTALL_REFERRER, указывающее реферер установки.

При получении конфигурации через SolarEngine SDK Android.MagicAd.1 не выполняет проверку окружения и сразу переходит к отображению объявлений.

Подготовка к демонстрации рекламы

Если зараженное устройство прошло все проверки, Android.MagicAd.1 запускает сервисы постоянного присутствия (persistence) и регистрирует неявные широковещательные приемники (Implicit BroadcastReceiver) с фильтрами намерений (Intent), реагирующими на данные системные события:

  • android.intent.action.SCREEN_ON
  • android.intent.action.SCREEN_OFF
  • android.intent.action.USER_PRESENT
  • android.media.VOLUME_CHANGED_ACTION
  • android.net.conn.CONNECTIVITY_CHANGE
  • android.intent.action.CLOSE_SYSTEM_DIALOGS
  • android.intent.action.PACKAGE_ADDED
  • android.intent.action.PACKAGE_REMOVED
  • android.intent.action.PACKAGE_REPLACED

Широковещательный приемник трояна контролирует эти события и при наступлении одного из них запускает намерение с рекламой.

Постоянное присутствие (persistence)

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

С использованием планировщика задач JobScheduler троян создает задачу JobService с параметром setPersisted(), что позволяет ей сохраняться и после перезагрузки системы. Эта задача каждые 4 секунды перезапускает сервисы, которые отвечают за работу канала уведомлений и запускают его вновь, если тот отсутствует.

Демонстрация рекламы

Основная функциональность для показа рекламы находится в нативных библиотеках. Они зашифрованы и чаще всего располагаются в каталоге ресурсов трояна в виде двух файлов ka3f0 и la3f0, каждый из которых является «склейкой» двух версий библиотек — для архитектур armeabi-v7a и arm64.

#drweb

Файлы, хранящие в себе пары зашифрованных вредоносных библиотек Android.MagicAd.1

Если вызывается нативый метод первой библиотеки, Android.MagicAd.1 при помощи операции XOR расшифровывает ее из первого файла ka3f0. Нативные методы этой библиотеки работают в качестве прокладки между Java-методами. В результате перекрестные ссылки (Cross References) запутываются, и порядок выполнения методов теряется, что усложняет анализ вредоносной программы.

При срабатывании широковещательного приемника троян создает намерение, демонстрирующее рекламу. Вредоносная программа при помощи различных методов пытается запустить данное намерение. Основной способ запуска — через вторую библиотеку из файла la3f0. Она расшифровывает из своего тела полезную нагрузку в виде 5 dex-файлов:

#drweb

Одним из расшифрованных dex-файлов является Android.MagicAd.4. Он инициализирует Android.MagicAd.1.origin — основной компонент, который отвечает за запуск изначального намерения с рекламой.

Для запуска активности с рекламой Android.MagicAd.1 передает dex-файлу Android.MagicAd.1.origin соответствующие намерение. В зависимости от модели устройства, тот пытается запустить его из фонового режима наиболее подходящим способом через эксплуатацию сторонних приложений.

Если основной метод запуска намерения через dex-файл не срабатывает, Android.MagicAd.1 пытается запустить его еще 2 раза. Если это не удается, он запускает намерение либо при помощи метода startActivity напрямую, либо при помощи метода Pending Intent send(), формируя отложенное намерение.

Через OnBackPressed() Override Android.MagicAd.1 блокирует выход из приложения и скрывает системный интерфейс (например, кнопки, уведомления) для активности, в которой демонстрируется реклама.

Троян запускает намерение с рекламой как Translucent Activity (полупрозрачная активность), что позволяет открывать баннеры поверх запущенных приложений. Целевая реклама подгружается через ThinkUp SDK.

MITRE ATT&CK®

Мы проанализировали вредоносную программу Android.MagicAd.1 по фреймворку MITRE ATT&CK®, который представляет собой матрицу с описанием тактик и техник киберпреступников, атакующих информационные системы. В результате были выявлены следующие ключевые техники:

Этап Техника
Первоначальный доступ Управление версиями приложений (T1661)
Выполнение Интерпретатор командной строки и сценариев (T1623)
Командная оболочка Unix (T1623.001)
Нативный API (T1575)
Планировщик заданий (T1603)
Закрепление Сценарии инициализации при загрузке или входе в систему (T1398)
Выполнение по событию (T1624)
Широковещательные приемники (T1624.001)
Постоянное закрепление (T1541)
Перехват потока исполнения (T1625)
Планировщик заданий (T1603)
Предотвращение обнаружения Управление версиями приложений (T1661)
Постоянное закрепление (T1541)
Сокрытие артефактов (T1628)
Скрытие значка приложения (T1628.001)
Обход пользователя (T1628.002)
Нативный API (T1575)
Обфусцированные файлы или информация (T1406)
Обход виртуализации или песочницы (T1633)
Системные проверки (T1633.001)
Обнаружение Обнаружение ПО (T1418)
Получение информации о системе (T1426)
Получение конфигурации сети системы (T1422)
Обнаружение интернет-соединения (T1422.001)
Организация управления Протокол прикладного уровня (T1437)
Веб-протоколы (T1437.001)
Веб-сервис (T1481)
Двусторонняя связь (T1481.002)
Воздействие Генерация трафика с устройства жертвы (T1643)

Подробнее об Android.MagicAd.4
Подробнее об Android.MagicAd.1.origin
Индикаторы компрометации
Новость о трояне

Рекомендации по лечению


Android

  1. Если мобильное устройство функционирует в штатном режиме, загрузите и установите на него бесплатный антивирусный продукт Dr.Web для Android Light. Выполните полную проверку системы и используйте рекомендации по нейтрализации обнаруженных угроз.
  2. Если мобильное устройство заблокировано троянцем-вымогателем семейства Android.Locker (на экране отображается обвинение в нарушении закона, требование выплаты определенной денежной суммы или иное сообщение, мешающее нормальной работе с устройством), выполните следующие действия:
    • загрузите свой смартфон или планшет в безопасном режиме (в зависимости от версии операционной системы и особенностей конкретного мобильного устройства эта процедура может быть выполнена различными способами; обратитесь за уточнением к инструкции, поставляемой вместе с приобретенным аппаратом, или напрямую к его производителю);
    • после активации безопасного режима установите на зараженное устройство бесплатный антивирусный продукт Dr.Web для Android Light и произведите полную проверку системы, выполнив рекомендации по нейтрализации обнаруженных угроз;
    • выключите устройство и включите его в обычном режиме.

Подробнее о Dr.Web для Android

Демо бесплатно на 14 дней

Выдаётся при установке