Lib андроид что это за папка

Структура и назначение файлов и папок в Андроид

вкл. 12 Апрель 2015 . Опубликовано в Android — Общее

Структура и назначение файлов и папок в Андроид. В данной статье вы узнаете какие папки (директории) в Android существуют, какие файлы в них находятся, за что отвечают данные папки и файлы и зачем они нужны.

Предисловие о структуре

У многих есть компьютер и на них установлена ОС Windows. Все прекрасно знают, что в данной ОС все распределено по дискам:

C: — на данном диске находиться система

D: — для личных файлов (диска может и не быть, если он не «разбит»)

E: — Z: — флешки, переносные жесткие диски, CD или DVD приводы.

В Windwows все рассредоточено по различным дискам. В UNIX/Linux куда входит и Android (а также BSD, куда входит Mac OS X) все выглядит все немного иначе. Файловая структура имеет древовидный вид. Возможно сейчас не понятно, но дальше с прочтением статьи будет более понятно.

Также стоит знать что Android как и в Linux, в отличие от Windows очень чувствительны к регистру. Например папка Name, NaMe, name, NAME — это 4 разных папки, тогда как Windows сможет создать только одну папку с таким именем.

Для того чтобы было более понятно о чем идет речь, рекомендуется установить файловый менеджер Root Browser.

Структура и назначение папок и файлов Android

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

Подробно о разделе cache

/cache/ — в данном разделе находятся временные файлы, точней сюда скачиваются обновления системы.

Подробно о разделе dev

/dev/ — в данной разделе содержится информация о устройствах системы и файлов

Подробно о разделе data

/data/ — пользовательский раздел в котором находятся установленные приложения, личные настройки

/data/app — здесь находятся установленные приложения, игры

/data/app-lib — дополнительные библиотеки необходимые для работы определенных приложений (присутствует в новых версиях Android)

/data/dalvik-cache — кеш-память, для работы Java машины Dalvik которая является «двигателем» в Android отвечающая за запуск и работу приложений.

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

/data/system/ — в данном разделе находятся глобальные настройки пользовательского окружения, синхронизация, аккаунты, блокировка. Файлы gesture.key, locksettings.db, locksettings.db-shm, locksettings.db-wal — графический ключ, пин-код.

Подробно о разделе efs

/efs/ — находится файлы и папки отвечающие за IMEI (данный раздел имеется не во всех Android)

Подробно о разделе preload

/preload/ — в данном разделе находятся дополнительные файлы и папки, которые зеркалируются в раздел /system/ (данный раздел имеется не во всех Android, преимущественно в Samsung)

Подробно о разделе system

/system/ — данный раздел содержит системные папки и файлы необходимые для функционирования Android

Читайте также:  Get user location without permission android

/system/app — здесь находятся системные приложения и сервисы (в новых ОС Android сервисные приложения вынесли в другую папку priv-app)

/system/bin и /system/xbin — папка содержит файлы и ссылки на исполняемые бинарные файлы.

/system/xbin/su — файл отвечающий за Root права

/system/camerdata — в данной папке находятся файлы отвечающие за работу камеры

/system/etc — в данной папке находятся конфигурационные файлы необходимые при загрузке ОС а также необходимые в процессе работы различных программ

/system/init.d — в данной папке находятся скрипты, которые могут влиять на работу системы.

/system/etc/ hosts — файл отвечающий за блокировку, переадресацию веб адресов.

/system/etc/ apns.conf — файл с информацией о точках доступах интернет (APN)

/system/etc/ gps.conf — настройки GPS

/system/fonts — папка с системными шрифтами

/system/framework — папка с «процессами» Android

/system/lib/ — библиотеки системных приложений и сервисов

/system/lib/modules — драйверы системы

/system/media — папка с системными звуками и анимацией включения

/system/media/ bootanimation.zip — исполняемый архив с загрузочной анимацией

/system/priv-app — папка с сервисами Android

/system/tts — папка с голосовыми движками системы

/system/build.prop — конфигурационный файл с помощью которого можно изменить системные настройки

Подробно о разделе proc

/proc — виртуальный раздел содержащий информацию о ядре и его конфигурации

Подробно о разделе mnt

/mnt — в данный раздел монтируются (добавляются) карты памяти и внутренняя память и другие виртуальные разделы (также в новых версиях можно встретить раздел storage)

Подробно о разделе storage

/storage — в данный раздел монтируются только реальные (существующие, то есть не виртуальные) карты памяти и внутренняя память

Подробно о разделе mnt и storage

Все файлы которые существуют у вас на Android (картинки, мелодии, видео, документы) записаны либо на внутренней памяти или карте памяти. Если в Android присутствует собственная память (внутренняя память) то она имеет монтируется под именем

/mnt/sdcard или /storage/sdcard

Да, я прекрасно понимаю что многие считают давать название собственной памяти таким именем, но что поделаешь…

Если же внутренней памяти нет, то это имя занимает карта памяти. Если же есть и внутренняя память и карта памяти, то внутренней так и остается под именем sdcard, а карта памяти берет одно из имен

sdcard2
external_sd
sdcard1
extSdCard

Источник

Еще один [почти] неудаляемый троянец под Android

В конце прошлого года с помощью функции обнаружения изменений в системной области у некоторых наших пользователей было зафиксировано изменение системного файла /system/lib/libc.so. Это одна из главных библиотек операционных систем на базе Linux, которая отвечает за системные вызовы и основные функции. Подробное рассмотрение этого случая позволило выявить новые образцы из семейства троянцев Android.Xiny, известного нам с 2015 года.

У его представителей мы впервые увидели установку атрибута «неизменяемый» на файлы, что существенно усложняло удаление троянцев с устройств.

Выглядело это довольно занятно: на apk-файл установленного приложения ставился указанный атрибут, попытка удалить это приложение выглядела успешной, его данные удалялись, но сам apk-файл оставался на месте. После перезагрузки устройства приложение снова «появлялось». Об одном из таких троянцев мы рассказали в 2016 году. Для борьбы с подобными угрозами мы добавили в наш антивирус функцию сброса атрибутов у файлов, которая работает при условии, что пользователь предоставил антивирусу root-полномочия.

В этой статье мы рассмотрим еще один интересный метод самозащиты, применяемый новыми версиями Android.Xiny.

Android 5.1? В 2019 году?

Троянец, рассматриваемый в данной статье, работает под ОС Android до версии 5.1 включительно. Может показаться странным, что вредоносное ПО, рассчитанное на столь «древние» версии Android, всё ещё активно (версия 5.1 вышла в 2015 году). Но, несмотря на свой возраст, старые версии всё ещё используются. По данным корпорации Google на 7 мая 2019 года, 25.2% устройств работают под управлением Android 5.1 и ниже. Статистика по нашим пользователям даёт чуть большее число — около 26%. Это значит, что около четверти всех Android-устройств являются потенциальными целями, что не так уж и мало. Учитывая, что указанные устройства подвержены уязвимостям, которые никогда не будут исправлены, неудивительно, что старые версии ОС Android всё ещё представляют интерес для вирусописателей. Ведь права root, которые можно получить с помощью эксплуатации упомянутых уязвимостей, развязывают вирусописателям руки — с их помощью можно делать на устройстве всё что угодно. Хотя чаще всего это сводится к банальной установке приложений.

Читайте также:  Как восстановить резервную копию ватсап с андроида

Основные функции троянца

Начиная с самых ранних версий, главная функция троянца Android.Xiny — установка на устройство произвольных приложений без разрешения пользователя. Таким образом злоумышленники могут зарабатывать, участвуя в партнёрских программах, которые платят за установку. Насколько можно судить, это один из основных источников дохода для создателей данного семейства. После запуска некоторых его представителей можно за несколько минут получить практически неработоспособное устройство, на котором будет установлено и запущено множество безвредных, но ненужных пользователю приложений. Кроме того, данные троянцы могут устанавливать и вредоносное ПО — всё зависит от команды, полученной с управляющего сервера.

Самое интересное, что выделяет новые версии троянца Android.Xiny — это защита от удаления. За неё отвечают два компонента. Рассмотрим их подробнее.

Установщик

sha1: f9f87a2d2f4d91cd450aa9734e09534929170c6c
детект: Android.Xiny.5261

Данный компонент запускается после получения прав root. Он подменяет собой системные файлы /system/bin/debuggerd и /system/bin/ddexe, чтобы обеспечить свой автоматический запуск, а оригиналы сохраняет под именами с суффиксом _server, действуя как классический вирус-компаньон. Также он копирует в системный раздел ещё несколько исполняемых файлов из папки, переданной в параметрах командной строки. Кроме того, троянец может обновлять компоненты, которые установил в системный раздел, если его запустить с особыми параметрами и указать папку, где лежат новые версии.

Android.Xiny.5261 содержит внушительный список файлов для удаления. В него входят пути, характерные для более старых представителей семейства, а также для конкурирующих семейств троянцев, устанавливающихся в системный раздел. Таких как, например, Triada.

Кроме того, Android.Xiny.5261 удаляет некоторые предустановленные приложения — возможно, чтобы освободить место. Наконец, он удаляет известные приложения для управления правами root – такие как SuperSU, KingRoot и другие. Таким образом, он лишает пользователя возможности использовать root-права, а значит, и удалить троянские компоненты, установленные в системный раздел.

Модифицированная системная библиотека libc.so

sha1: 171dba383d562bec235156f101879223bf7b32c7
детект: Android.Xiny.5260

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

Открываем файл в IDA и смотрим, что это за код.

Выясняется, что в данной библиотеке были изменены следующие функции: mount, execve, execv, execvp, execle, execl, execlp.

Код изменённой функции mount:

int __fastcall mount ( const char * source , const char * target , const char * filesystemtype , unsigned int mountflags , const void * data )
<
unsigned __int8 systemPath [ 19 ] ; // [sp+18h] [bp-1Ch]
bool receivedMagicFlags ; // [sp+2Bh] [bp-9h]
int v13 ; // [sp+2Ch] [bp-8h]
v13 = MAGIC_MOUNTFLAGS ; // 0x7A3DC594
receivedMagicFlags = mountflags == MAGIC_MOUNTFLAGS ;
if ( mountflags == MAGIC_MOUNTFLAGS )
mountflags = 0x20 ; // MS_REMOUNT
if ( receivedMagicFlags )
return call_real_mount ( source , target , filesystemtype , mountflags , data ) ;
if ( mountflags & 1 ) // MS_RDONLY
return call_real_mount ( source , target , filesystemtype , mountflags , data ) ;
if ( getuid_ ( ) ) // not root
return call_real_mount ( source , target , filesystemtype , mountflags , data ) ;
memCopy ( systemPath , ( unsigned __int8 * ) off_73210 + 471424 , 8 ) ; // /system
decrypt ( systemPath , 8 ) ;
if ( memCompare ( ( unsigned __int8 * ) target , systemPath , 8 ) || ! isBootCompete ( ) )
return call_real_mount ( source , target , filesystemtype , mountflags , data ) ;
* ( _DWORD * ) errno_ ( ) = 13 ;
return — 1 ;
>

В начале тут происходит проверка параметра mountflags на наличие «волшебного» значения 0x7A3DC594. Если функции передано это значение, управление сразу передаётся настоящей функции mount. Далее проверяется, происходит ли попытка перемонтировать раздел /system на запись и завершена ли загрузка ОС. Если эти условия выполняются, настоящая функция mount не вызывается и возвращается ошибка. Таким образом, модифицированная троянцем функция mount не даёт перемонтировать системный раздел на запись никому, кроме самого троянца, который вызывает её с «волшебным» параметром.

Читайте также:  Датчик пульса для android bluetooth

Код изменённой функции execve (в остальных exec*-функциях всё аналогично):

int __fastcall execve ( const char * filename , char * const argv [ ] , char * const envp [ ] )
<
int v3 ; // r3
if ( targetInDataOrSdcard ( filename ) >= 0 ) // returns -1 if true
<
sub_7383C ( ) ;
v3 = call_real_execve ( filename , argv , envp ) ;
>
else
<
* ( _DWORD * ) errno_ ( ) = 13 ;
v3 = — 1 ;
>
return v3 ;
>

int __fastcall targetInDataOrSdcard ( const char * path )
<
char buf [ 516 ] ; // [sp+8h] [bp-204h]
if ( isDataOrSdcard ( path ) )
return — 1 ;
if ( * path == ‘.’ && getcwd_ ( buf , 0x200u ) && isDataOrSdcard ( buf ) )
return — 1 ;
return 0 ;
>

Здесь проверяется, начинается ли путь к запускаемому файлу с «/data/» и содержит ли «/sdcard». Если одно из условий выполняется, запуск блокируется. Напомним, что по пути /data/data/ находятся директории приложений. Таким образом блокируется запуск исполняемых файлов из всех директорий, в которых обычное приложение может создать файл.

Изменения, внесённые в системную библиотеку libc.so, нарушают работу приложений, предназначенных для получения прав root. Из-за изменений в функциях exec* такое приложение не сможет запустить эксплойты для повышения привилегий в системе, поскольку обычно эксплойты представляют собой исполняемые файлы, которые скачиваются из сети в директорию приложения и запускаются. Если же повысить привилегии всё-таки удалось, изменённая функция mount не даст перемонтировать системный раздел на запись, а значит, и произвести в нём какие-либо изменения.

В итоге, самозащита троянца складывается из двух частей: его установщик удаляет приложения для управления root-правами, а модифицированная библиотека libc.so не даёт установить их снова. Кроме того, эта защита работает и от «конкурентов» — других троянцев, которые получают права root и устанавливаются в системный раздел, поскольку они работают по тому же принципу, что и «хорошие» приложения для получения прав root.

Как бороться с таким троянцем?

Чтобы избавиться от Android.Xiny.5260, устройство можно перепрошить – при условии, что в открытом доступе существует прошивка для него. Но можно ли удалить вредоносную программу другим способом? Сложно, но можно – есть несколько путей. Для получения прав root можно использовать эксплойты в виде so-библиотек. В отличие от исполняемых файлов, их загрузку троянец не заблокирует. Также можно воспользоваться компонентом самого троянца, который предназначен для предоставления root-прав другим его частям. Он получает команды через сокет по пути /dev/socket/hs_linux_work201908091350 (в разных модификациях путь может отличаться). Что касается обхода блокировки mount, можно использовать «волшебное» значение параметра mountflags, либо напрямую вызвать соответствующий syscall.

Реализовывать я это, конечно, не буду.

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

Источник

Оцените статью