Содержание статьи
- Откуда берутся вредоносы на устройстве?
- Как найти вредонос?
- Как обезвредить вредонос?
- Как прочитать манифест установленного приложения?
- Как получить множество информации об установленном APK при помощи PackageManager?
- Как извлечь установленный APK-файл?
- Как проверить приложение на присутствие в маркетах и что дает эта информация?
- Читаем системные ресурсы описания разрешений Android
INFO
Самый прямой и брутальный способ решения проблемы зараженной прошивки — накатить чистую и проверенную. 🙂
Откуда берутся вредоносы на устройстве?
Раньше основным каналом поставки на устройство вредоносных приложений были форумы и неофициальные магазины. Немногие уже вспомнят, как vk музыка угоняла логины и пароли от нашей самой популярной социальной сети. Довольные пользователи скачивали ее с 4pda.ru, а потом некоторые из них недоумевали, просматривая свои сессии из стран, где они никогда не бывали. Мы уже писали, что сегодня не так сложно опубликовать вредонос в Google Play, тогда вопрос его распространения становится вопросом поисковой оптимизации в маркете (ASO).
Но сейчас нередко прошивку заражают нечестные посредники или сами производители устройств. В подобном случае спектр зловредной деятельности простирается от банального показа рекламы и кражи личных данных до майнинга наших любимых криптовалют прямо на всех ядрах устройства.
Как найти вредонос?
Странности в поведении устройства обычно всплывают уже в первую неделю использования. Например, одна кастомная клавиатура время от времени показывала межстраничное объявление в самых неожиданных местах. Другие «быстрые браузеры» могут без спроса устанавливать чужие приложения. Заподозрив аномальную активность, с помощью сторонних программ можно посмотреть манифест устройства, вызывающего сомнения. Например, android.permission.SYSTEM_ALERT_WINDOW
разрешает создавать окна поверх всех остальных приложений. Очень удобно для показа рекламы, как ты догадался. А для установки приложений нужен android.permission.REQUEST_INSTALL_PACKAGES
.
Серые накрутчики установок так и работают — сначала заражаем устройства своими установщиками, потом принимаем заказы от легальных или не очень разработчиков на установку. С помощью трюков с accessibility service
можно даже оставить отзыв и оценку в приложении Google Play. Отзывы, оценки и количество установок — важный фактор для ASO любого приложения, так что услуга еще долго будет востребована на рынке.
Как обезвредить вредонос?
Локализовав злокачественный пакет, можно сразу его удалить и успокоиться. Но простое удаление работает, только когда этот пакет не системный. Если пакет системный, можно его удалить с помощью рут-доступа. Возьми стороннее приложение или напиши свой собственный инструмент. Когда рут-прав нет, но вредонос есть в списке приложений, можно просто удалить его обновления и отключить его.
Если на этом мучения пользователя остановились, его можно поздравить. В самых запущенных случаях (нет рута, и вредонос засел в системе) может помочь лишь полная перепрошивка устройства, но она доступна только с разблокированным загрузчиком, а не на всех устройствах можно это сделать (кстати, и не на всех устройствах можно получить рут-доступ). Если загрузчик нельзя разблокировать, нет рут-прав и вредонос не светится в списке приложений в настройках, то лекарство остается только одно — магазин. 🙂
INFO
Перед покупкой нового устройства обязательно найди его ветку на 4pda.ru. Там может уже быть вся нужная информация о нежелательных приложениях, более чистых прошивках и способах получения рут-прав.
Как прочитать манифест установленного приложения?
Для чтения манифестов не требуется специальных разрешений в системе. Любое приложение может это делать без спроса, используя контекст чужого приложения:
Context context = createPackageContext(packageName, CONTEXT_RESTRICTED);
parser = context.getResources().getAssets().openXmlResourceParser("AndroidManifest.xml");
Если пишешь свое приложение, удобнее всего отобразить манифест в компоненте WebView
. Сначала сгенерируй красивый HTML-файл (со стилями CSS и прочим), потом загрузи его в WebView. Есть также и готовые читалки манифестов, в маркете можешь сам поискать по запросу manifest view
.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»