Пінгвін

Відстеження додатків Android за допомогою утиліт Termux і Linux

У наступній статті буде показано, як використовувати «старомодні» утиліти Linux і Termux для відстеження програм Android.

Ми використовуватимемо віртуальну машину Termux Linux у пристрої Android, щоб установлювати звичайні утиліти Linux разом із програмами Android.

Основні інструменти, які ми будемо використовувати:

  1. strace
  2. Jtrace
  3. Inotifywatch

*Потрібний рутований пристрій

Що таке Termux

Termux — це емулятор терміналу для Android. Він більше нагадує дистрибутив Linux, ніж просто термінальну програму, завдяки великій кількості доступних пакетів, таких як clang, ffmpeg, openssh, python і vim.

Termux не є емулятором ОС або обладнання. Він використовує те саме середовище, що й інші частини ОС Android.

Навіщо нам Termux?

Коротка відповідь: менеджер пакетів APT.
Довга відповідь: Android не має вбудованого менеджера пакетів або сховищ. Якщо ви бажаєте використовувати такі двійкові файли, як wget або cURL, в Android, вам доведеться вручну шукати когось, хто їх скомпілював, або, найгірше, скомпілювати їх самостійно.

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

Як налаштувати Termux

Є 3 основні кроки:

  1. Встановіть додаток
  2. Налаштуйте ssh безпосередньо на Termux Shell
  3. Бонус - запустіть termux з оболонки adb

Корисні утиліти для програм динамічного аналізу

strace

Strace — це утиліта для діагностики, налагодження та навчання для Linux. Він використовується для моніторингу та втручання у взаємодію між процесами та ядром Linux, яка включає системні виклики, доставку сигналів і зміни стану процесу. Маючи дуже невеликі попередні знання, ви можете переглядати всі взаємодії файлів певного процесу

strace -p -e trace=файл

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

Jtrace

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

Inotifywatch

Іноді strace недостатньо, оскільки ви хочете знати, чи/коли використовується файл, але ви не впевнені, який процес його використовує. На щастя, inotifywatch вирішує саме це. inotifywatch прослуховує події файлової системи за допомогою інтерфейсу inotify Linux, а потім виводить підсумкову кількість подій, отриманих для кожного файлу чи каталогу. Таким чином можна відстежувати конкретні папки, а не конкретні процеси.

Чат

Chattr (зміна атрибутів) дозволяє користувачам змінювати атрибути файлів.

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

Наприклад, ви можете дозволити користувачеві додавати текст до файлу, але заборонити користувачеві видаляти файл за допомогою наступної команди

chattr -a 

Це може бути дуже корисним під час дослідження шкідливих програм, які використовують тимчасові файли та миттєво їх видаляють.

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

chattr -Ra /data/data/com.bad.package/files/

Перейти до вмісту