Penguin

Отслеживание приложений Android с помощью утилит Termux и Linux

В следующей статье будет показано, как использовать «старомодные» утилиты Linux и Termux для отслеживания приложений Android.

Мы будем использовать виртуальную машину Termux linux внутри устройства Android, чтобы установить общие утилиты Linux вместе с приложениями Android.

Основные инструменты, которые мы будем использовать:

  1. Strace
  2. Jtrace
  3. Inotifywatch

* Требуется рутированное устройство

Что такое Термукс

Termux — эмулятор терминала для Android. Он больше напоминает дистрибутив Linux, чем просто терминальное приложение, из-за большого количества доступных пакетов, таких как clang, ffmpeg, openssh, python и vim.

Termux не является эмулятором ОС или оборудования. Он использует ту же среду, что и другие части ОС Android.

Зачем нам нужен Termux?

Краткий ответ: Менеджер пакетов APT.
Длинный ответ: Android не имеет встроенного менеджера пакетов или репозиториев. Если вы хотите использовать двоичные файлы, такие как wget или cURL, в Android, вам нужно будет вручную искать того, кто их скомпилировал, или, что еще хуже, скомпилировать их самостоятельно.

Android имеет собственную реализацию libc (Bionic), которая была создана, чтобы позволить разработчикам приложений легально иметь приложения с закрытым исходным кодом. Это приводит к тому, что обычные двоичные файлы ARM из обычных репозиториев выходят из строя, а компиляция новых двоичных файлов становится нетривиальной задачей. Termux устраняет все эти проблемы, предоставляя пользовательское пространство libc, которое позволяет запускать «обычные» двоичные файлы ARM.

Как настроить Термукс

Есть 3 основных шага:

  1. Установите приложение
  2. Настройте ssh прямо на вашу оболочку Termux.
  3. Бонус - запустить termux из оболочки adb

Полезные утилиты для приложений динамического анализа

Strace

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

стрейс-р -e трассировка=файл

С помощью strace вы можете анализировать необычное поведение памяти, обрабатывать сигналы и многое другое. Важно отметить, что при работе с приложениями Android большая часть логики выполняется JVM, поэтому к вашей трассировке будет добавлено много вызовов grange.

Jtrace

Jtrace — это форк strace с модификацией Android, которая позволяет подключать специфичные функции Android, что очень полезно для отслеживания приложений Android. Jtrace — полезный инструмент, который имел множество интересных обновлений в течение 2021 года. * Для этого не нужен Termux.

Inotifywatch

Иногда strace недостаточно, так как вы хотите знать, используется ли файл и когда, но вы не уверены, какой процесс его использует. К счастью, inotifywatch решает именно эту проблему. inotifywatch отслеживает события файловой системы, используя интерфейс inotify Linux, а затем выводит суммарное количество событий, полученных для каждого файла или каталога. Таким образом, вы можете отслеживать конкретные папки, а не конкретные процессы.

чат

Chattr (изменение атрибутов) позволяет пользователям изменять атрибуты файлов.

Атрибуты файлов являются частью механизма безопасности, аналогичного разрешениям в Linux (chmod), с более детальными запросами.

Например, вы можете разрешить пользователю добавлять текст в файл, но запретить пользователю удалять файл с помощью следующей команды.

чаттр -а 

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

Вы также можете использовать команду с рекурсивным флагом для целых каталогов:

чаттр -Ра /data/data/com.bad.package/files/

перейти к содержанию