Mobile

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

Всем привет из далёких уголков нашей любимой и необъятной страны. Сегодня мы поговорим о мониторинге приложений. Это важный урок, который позволит отслеживать приложения и считать статистику запусков. Для начала нужно понять что такое приложение и как оно работает.


Нудная теория

Любое приложение делится на две части:

1. Background – сервисы и тому подобное.
2. Activity – то что показывается юзеру.

У приложения может быть много Activity, одни могут быть доступны из меню приложений андроида, а другие вызываются через код. Каждое activity имеет свое имя и структуру. К примеру, у нас есть приложение “com.microsoft.hack” (это имя для package) и есть activity “startpage“, тогда полное название данной activity будет “com.microsoft.hack.startpage“. Названия могут быть вложенными, это определяется структурой папок и расположением “.java” файлов.

Подготовка к слежению

Что нам потребуется?
1. Создать процесс (сервис к примеру), который будет раз в N секунд запрашивать ActivityManager и проверять какое приложение наверху.
2. Выполнять любые действия, принимая во внимания эту информацию.

Для начала идем в Manifest, запрашиваем права, для работы с ActivityManager:

<uses-permission android:name="android.permission.GET_TASKS" />

и регистрируем сервис:

<service android:name=".Monitor" />

Создаем наш сервис, где будем вести обработку:

public class Monitor extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_STICKY;
}

@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("");
}

@Override
public void onCreate()
{
MyTimerTask myTask = new MyTimerTask();
Timer myTimer = new Timer();
myTimer.schedule(myTask, 0, 1000);
}

class MyTimerTask extends TimerTask {
public void run() {
// выполнение кода анализа процессов.
}
}
}
Запуск в первой activity, которая стартует при запуске приложения:
context.startService(new Intent(context, Monitor.class));

Переходим к обработке:

ActivityManager am = (ActivityManager) Context.getSystemService(cnt.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
app = taskInfo.get(0).topActivity.getClassName();
//*log place

После чего в app лежит та самая строка с activity.

Важный момент: мы можем ставить обработку как на всё приложение, так и на отдельные его окошки.

Как я узнаю какие существуют названия и как их посмотреть?
Это очень просто, заместо “//*log place” пишем код:

Log.w("log",app);

и увидим в logcat логи всех переключаемых приложений.

Как мне вставить свою обработку?
Нужно написать после получения переменной app:

if(app.equals("name_activity"){
// делаем действия
}

Всегда приходит конец

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

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

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

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

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

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

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

 

Click to rate this post!
[Total: 7 Average: 3.9]
cryptoworld

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

Recent Posts

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

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

11 месяцев ago

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

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

11 месяцев ago

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

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

11 месяцев ago

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

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

11 месяцев ago

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

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

11 месяцев ago

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

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

11 месяцев ago