Wlancards.ru

ПК техника, WI FI Адаптеры
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Инструкция: Как восстановить удаленные фотографии с SD-карты бесплатно

Инструкция: Как восстановить удаленные фотографии с SD-карты бесплатно

Вы случайно удалили несколько фотографий с SD-карты? Или даже нажали «удалить все»? Скорее всего, их очень легко извлечь. В этой статье о том, как восстановить удаленные фотографии. Мы расскажем, что вы можете сделать, чтобы восстановить информацию, поскольку удаление — это не то, чем кажется, и есть много возможностей вернуть потерянные фотографии.

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

Замените SD-карту и сохраните ту, которая содержала удаленные изображения, так как это повысит вероятность того, что вы их восстановите.

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

SD карта повреждена, что делать

SD карта повреждена, что делать

Поддержка внешних карт памяти для многих пользователей Android является важным критерием при выборе нового девайса. К счастью, большинство из них все еще поддерживают такую опцию. Впрочем, и здесь могут возникнуть сбои — например, сообщение о повреждении SD-карты. Сегодня вы узнаете, почему эта ошибка возникает и как с ней справиться.

SD карта повреждена, что делать

Содержание: SD карта повреждена, что делать

  1. Причины и решения ошибки о повреждении карты памяти
  2. Причина 1: Случайный единичный сбой
  3. Причина 2: Плохой контакт слота и карты памяти
  4. Причина 3: Наличие ошибочных секторов в таблице файлов карты
  5. Причина 4: Физическое повреждение карты

Причины и решения ошибки о повреждении карты памяти

Сообщение «SD-карта не работает» или «Пустая SD-карта: требуется форматирование» может появиться в таких случаях:

Причина 1: Случайный единичный сбой

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

Причина 2: Плохой контакт слота и карты памяти

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

Если контакты на самой карте памяти визуально чистые, можете просто подождать некоторое время и вставить её снова — возможно, девайс или сама флешка просто нагрелись. Спустя некоторое время вставьте SD-карту обратно, и убедитесь, что она посажена до конца (но не переусердствуйте!). Если проблема была в плохом контакте, после этих манипуляций она исчезнет. Если проблема остается — читайте дальше.

Причина 3: Наличие ошибочных секторов в таблице файлов карты

Проблема, с которой чаще всего сталкиваются любители подключать девайс к ПК и вместо безопасного извлечения просто выдергивать шнур. Впрочем, от такого не застрахован никто: подобное может вызвать сбой ОС (например, выключения при разряде батареи или аварийная перезагрузка) или даже банальный перенос файлов (копирование или Ctrl+X) средствами самого телефона. В зоне риска также владельцы карточек с файловой системой FAT32.

Как правило, сообщение об ошибочном распознавании SD-карты предваряют другие неприятные симптомы: файлы с такой флешки читаются с ошибками, файлы пропадают вообще или появляются такие себе цифровые призраки. Естественно, причину такого поведения не исправят ни перезагрузка, ни попытка вытащить-вставить флешку. Действовать в такой ситуации следует так:

1. Вытащите карту памяти из телефона и подключите её к компьютеру посредством специального устройства-кардридера. Если у вас ноутбук, его роль прекрасно исполнит переходник microSD-SD.

Наличие ошибочных секторов в таблице файлов карты

2. Если ПК распознает карту корректно, то скопируйте её содержимое на жесткий диск «большого брата» и отформатируйте флешку любым предложенным способом в файловую систему exFAT — такой формат предпочтителен для Android.

exFAT

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

3. Если карта памяти не распознается корректно — скорее всего, её придется форматировать как есть, а затем, в случае успеха, восстанавливать файлы .

Причина 4: Физическое повреждение карты

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

Ошибка, сопровождаемая сообщением о повреждении карты памяти – одна из самых неприятных, которая может произойти с пользователями девайсов под управлением Android. Благо, в большинстве случаев это просто единичный сбой.

Как восстановить данные на MicroSD карте

восстановить данные с MicroSD карты

Карты памяти MicroSD способны существенно расширить память смартфона. С их появлением стало проще и удобнее хранить музыку, фото и видео, а также кеш различных приложений. Но что если карта памяти внезапно перестает работать и как вытащить с неё данные? В нашей небольшой статье мы расскажем о восстановлении данных с MicroSD.

Читайте так же:
Запрет разговора по телефону картинки

Минус этого способа в том, что нужен картридер, но подойдет и ноутбук со слотом под карту памяти и адаптер, который обычно продается с MicroSD. Если все условия соблюдены, то необходимо выключить смартфон и вытащить карту памяти. Если компьютер обнаружил сразу карту, то кликаем по ней правой кнопкой мышки и нажимаем Свойства, далее Сервис и Выполнить проверку. После этой процедуры данные должны стать снова доступными.

Восстановление Sd карты

Если Windows не распознает карту памяти, то кликаем правым кликом на Мой компьютер в панели Пуск и выбираем Управление из списка, далее Управление дисками. Там находим похожий по размеру на карту MicroSD диск и правым кликом меняем Путь к диску или букву диска. После этого диск должен будет появиться в списке Мой компьютер рядом со всеми прочими дисками.

Восстановление Sd карты

Читайте также: Как автоматически скипнуть рекламу Youtube

Восстановление данных MicroSD при помощи программ

Если эти варианты не помогли, то у вас все еще много способов восстановить данные с карты памяти при помощи сторонних программ. Например, таких как DiskDigger . Скачиваем программу по ссылке с официального сайта, устанавливаем и открываем. Сразу можно поставить русский язык для удобства в разделе Language.

Восстановление Sd карты

После запуска программы выбираем MicroSD карту, которую нужно восстановить. Нажимаем Далее. Выбираем Тщательный поиск. Затем необходимо выделить файлы, которые нужно восстановить и вновь нажать Далее. Заключительный шаг – выбор места куда сохранить восстановленные файлы. Таким образов восстановление вашей SD карты завершено. Этой же программой, к слову, можно сделать восстановление данных с флешки.

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

Восстановление данных при помощи смартфона и root

Если у вас телефон с правами доступа root, то можно восстановить данные без помощи компьютера, непосредственно со смартфона. Опять же подойдет приложение DiskDigger , которое можно скачать с PlayMarket. С бесплатной версией этой программы можно будет восстановить только фото (jpg, png) или видео (mp4, 3g). Для восстановления прочих данных потребуется Pro версия, но она платная. В остальном здесь все то же самое, поэтому подробно описывать не будем.

Восстановление Sd карты

Этот способ хуже, чем предыдущий и ко всему прочему требуется наличие root, иначе поиск будет не эффективен.

Восстановление данных из внутренней памяти на Android для чайников

Сейчас всё больше смартфонов идут без слота для sd-card, и информацию приходится хранить на встроенной памяти с доступом к ней по MTP. Такой режим подключения не позволяет стандартными средствами восстановить данные телефона после wipe’а или случайного удаления.

Сегодня на примере связки Xiaomi Mi2s и Windows 8.1 я постараюсь рассказать, как можно восстановить утерянные данные, кому интересно, добро пожаловать под кат.

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

Протокол MTP не позволяет компьютеру распознать подключенный девайс как USB-накопитель и программы для восстановления не могут просканировать такое устройство и спасти данные, поэтому нам потребуется скопировать весь внутренний раздел памяти в виде образа системы.

Подготовка Android-устройства

Вам понадобится root и включенная отладка по USB.

Подготовка PC

Для того, чтобы скопировать раздел системы, нам понадобится:

    ;
  • Драйвера для вашего устройства (в случае проблем habrahabr.ru/post/205572);
  • ADB (adbdriver.com или developer.android.com);
  • Сервер FileZilla.
VHDtool

Создаём папку с адресом C:cygwin6400 (имя не имеет значения, не стоит только использовать буквы отличные от латиницы), здесь будет лежать наш образ. Копируем в папку VHDtool.exe.

FileZilla

В ходе инсталяции соглашаемся на все стандартные установки.
После установки FileZilla запустится автоматом, но из программы необходимо выйти и запустить её от имени Администратора.
При запуске FileZilla спросит имя сервера, оставляем всё как есть.

Далее заходим Edit — Settings и делаем следующие настройки:

listen on those ports 40
timeout settings — по умолчанию стоит 120, 60, 60, а мы ставим везде 0 и нажимаем ОК.
Заходим в edit — users. В окошке users создаем нового юзера. В моем случае это юзер qwer.
Нажимаем Add — пишем имя — пароль pass — нажимаем ОК.

Далее в том же меню Users, слева выбираем закладку Shared folders. Заходим туда и добавляем папку в которую будет заливаться наш блок. Нажимаем Add и добавляем папку C:cygwin6400. В окошке появится путь к этой папке. Если слева от надписи C:cygwin6400 не будет буквы H, то нужно нажать Set as home dir. Затем выделив строчку C:cygwin6400 нужно отметить права Read и Write галочками. Затем нажать ОК.

  • adb.exe
  • AdbWinApi.dll
  • adb-windows.exe
  • AdbWinUsbApi.dll
  • fastboot.exe

Скачать их можно на тут.
Или вытащить из дистрибутива Android SDK.

Копируем их в папку C:cygwin64bin

Проверка работы ADB

Запускаем консоль из папки C:cygwin64bin, для этого достаточно вписать cmd в адресную строку проводника

Читайте так же:
Как включить видео на телевизоре через телефон

Список подключенных девайсов не должен быть пуст, если после строчки List of devices attached пусто, то вы не установили USB-драйвера или не включили отладку по USB.

Когда всё идет хорошо, консоль выглядит так:

20352f2c – мой Xiaomi Mi2s

Режим модема по USB

Теперь нам необходимо узнать, какой IPv4 адрес получил ваш компьютер.
Используем команду ipconfig в командной строке
или
Идем по пути: Панель управленияСеть и ИнтернетЦентр управления сетями и общим доступом

Кликаем по надписи ’Подключение по локальной сети’ далее Сведения и копируем адрес IPv4.

В моём случае это 192.168.42.79

Важно! При каждом переподключении USB кабеля и вкл/выкл режима модема IPv4 будет меняться.

Какой блок памяти нам нужен?

Вся память в вашем устройстве делится на логические блоки, нам не нужно качать все, достаточно понять, какой раздел содержит стёртую информацию.

Теперь нам необходимо посмотреть список блоков памяти, для этого вводим построчно следующие команды:

Hint: если вам лень вручную переписывать команды или вы боитесь допустить ошибку, то можно воспользоваться копированием, но вставить привычным способом строчку в консоль не выйдет, поэтому необходимо кликнуть правой кнопкой мыши по окну консоли, далее выбрать изменить > вставить.

После чего во внутренней памяти появится файл list_of_partitions.txt, который нам необходимо скопировать на ПК и изучить.
Скопировать его можно в нашу папку 000 с помощью простой команды (выполнять её следует в отдельном окне командной строки):

Внутренней памяти в моём аппарате 32 GB. Поэтому я ищу самый большой раздел, в моём случае это mmcblk0p27 размером 25,6 GB, у вас он скорее всего будет иметь другое имя, или вообще не будет иметь приписки p**. Безусловно, никто не гарантирует что именно самый большой раздел окажется тем самым на котором еще совсем недавно лежали ваши фото, видео, документы и тд., но в 90% случаев это оказывается именно тот раздел памяти который нам нужен. В противном случае вам придется по порядку копировать все образы и проверять каждый из них.

Копируем раздел памяти на ПК.

Если вы уже закрыли окно cmd, то запускаем его снова.

Вводим команды построчно:

Не забудьте внести соответствующие корректировки в код!

qwer – имя учетной записи в FileZilla (у вас свой если меняли)
pass – пароль от учетной записи в FileZilla (у вас свой если меняли)
40 – порт сервера FileZilla
192.168.42.79 – адрес сервера FileZilla (у вас свой)
mmcblk0p27.raw – копируемый блок памяти (у вас свой)

Открываем второе окно командной строки и вводим команды:

Не забудьте исправить mmcblk0p27 на номер своего блока!

Смотрим в окно FileZilla и видим, что скачивание mmcblk0p27.raw в папку C:cygwin6400 началось, теперь можно закрыть окна cygwin и сделать перерыв на чай.

Конвертируем и восстанавливаем

Вернулись? Файл скачался? Отлично. Отключаем телефон, подключаем интернет. Запускаем Cygwin.bat и вводим следующие команды.

Не забудьте исправить mmcblk0p27 на номер своего блока!

У меня конвертирование заняло пару секунд. На выходе у нас получается всё тот же файл mmcblk0p27.raw в папке C:cygwin6400, но уже немного другой. Этот сконвертированный файл можно смонтировать как виртуальный диск, или, например через R-studio, произвести восстановление данных непосредственно из нашего образа. Я так и поступил.


Hint: важные моменты пометил желтым.

Итоги

Моей целью было популярным языком объяснить способ копирования системного раздела с android-девайса на ПК, возможно, некоторые упрекнут меня в сложностях, связанных с USB-модемом и ftp, и скажут, что наверняка можно было проще вытащить образ. Отвечу так: я пробовал другими способами, описанными на 4pda и xda-developers, у меня не вышло, зато с ftp получилось со второй попытки, а входе написания статьи всё вообще прошло как по маслу.

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

В завершении хочется также упомянуть еще одну небольшую утилиту, которая восстанавливает данные — DiskDigger undelete. Она бесплатная, неплохой функционал, но к сожалению, после 40% она у меня вывалилась с ошибкой.

6
Переустановите дисковод

Обновленный или поврежденный диск может не прочитать данные на SD-карте, и вы можете обнаружить, что карта пуста. Так что переустановите или обновите до последней версии.

1 Подключите SD-карту к ПК с помощью ридера или через телефон.

2 Перейдите «Этот компьютер»> «Свойства»> «Диспетчер устройств»> «Драйверы дисков».

3 Найдите и выберите свое USB-устройство, щелкните правой кнопкой мыши и сначала выберите «Удалить», а затем выберите «Сканировать на наличие изменений оборудования», чтобы обновить драйверы.

Переустановите дисковод

Рассмотрим самые известные причины ошибки «Карта не работает» на смартфоне «Андроид».

Обычный сбой в системе — перезапускаем устройство

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

Читайте так же:
Как восстановить список контактов в телефоне

Перезагрузка

Тапните по «Перезагрузка» в меню

Карта сдвинулась в слоте

Подвижные элементы телефона, в том числе «симка» и флешка могут сдвигаться в слотах во время эксплуатации, или даже когда смартфон находится в сумке или кармане. Поэтому не исключено, что ваша карта немного отошла от контактов телефона, которые принимают от неё сигнал.

Нужно вынуть карту. Добейтесь максимально безопасного извлечения: перед тем как доставать её, зайдите в настройках в раздел «Память» и щёлкните по «Извлечь карту».

Отключение

Отключите карту памяти, прежде чем её достать

Откройте крышку телефона (предварительно его выключите, если перед тем как достать флешку, вам нужно вынуть аккумулятор). Достаньте карту. Осмотрите флешку очень внимательно: возможно, на её контактах есть пыль. Если есть, протрите их спиртовыми салфетками или хотя бы просто уберите пыль ватными палочками.

Карта памяти

Достаньте карту памяти и вставьте её в слот обратно

Если контакты чистые, подождите некоторое время (хотя бы несколько минут), а затем вставьте карту в слот снова, чтобы она плотно села в разъём. Если дело было в плохом контакте между телефоном и картой, после включения смартфона ошибка «Карта не работает» должна исчезнуть.

На карте есть ошибочные секторы — форматируем флешку

Если вам не повезло (перезагрузка флешки и телефона не помогли), возможно, дело в том, что некоторые ячейки памяти на вашей флешки были когда-то повреждены. Такое случается, когда пользователь просто достаёт шнур USB от телефона из компьютера без предварительного включения функции «Безопасное отключение».

Подключение к ПК

Перед тем как извлекать телефон из ПК, включите безопасное отключение в «Виндовс»

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

Перед ошибкой «Карта не работает» пользователь обычно замечает, что с флешкой происходит что-то неладное: файлы читаются с ошибками или вовсе пропадают из памяти.

Как поступить в этой ситуации:

  1. Достаньте карту памяти из слота, предварительно включив функцию «Извлечь карту» в настройках памяти.
  2. Вставьте карту в специальный картридер, а его подключите к компьютеру.

Картридер

Чтобы подключить карту к ПК, используйте картридер

Форматирование

Щёлкните по «Форматировать»

Файловая система

Определите файловую систему и щёлкните по «Начать»

Если компьютер не показал корректно все данные на флешки, вы не сможете скопировать файлы для резервной копии. Вам придётся отформатировать её как есть, а потом попытаться восстановить некоторые файлы с помощью специальных программ. Например, можно взять такие утилиты: Active File Recovery, Auslogics File Recovery, CardRecovery и другие. Их нужно устанавливать на компьютер. После инсталляции подключите телефон с картой через USB или саму карту с помощью картридера к ПК, а затем запустите сканирование на наличие оставшихся файлов.

Active File Recovery

Для восстановления файлов с флешки нужно использовать специальную программу для ПК

Карта физически повреждена

Самый неудачный исход — повреждение карты. Если компьютер её даже не видит, вероятно, так оно и есть. Можно попробовать, конечно, подключить флешку к другому компьютеру или телефону, чтобы проверить её работоспособность.

Флешка может быть повреждена, если она уже старая (истёк срок годности), если она побывала в воде или от перегревания (контакты могли перегореть). В этом случае вы бессильны — вам остаётся смириться и пойти купить новую флешку. Чтобы в будущем не терять данные с флешек, рекомендуем делать резервные копии файлов на нескольких носителях.

В первую очередь перезагрузите телефон и флешку (достаньте её из слота и вставьте снова). Если не помогло, подключите карту к компьютеру с помощью картридера. Если информация на флешке отображается, скопируйте все данные и отформатируйте карту. Если данные не показываются, но флешка распознаётся, просто отформатируйте её, но в этом случае учтите, что вы потеряете практически все данные с неё. Если ничего не помогает, скорее всего, флешка «полетела» — нужно покупать новую.

Как Android обеспечивает безопасность

The Android Platform Security Model — написанный сотрудниками Google вайтпейпер, посвященный теории и практике реализации подсистем безопасности в Android. В документе много воды, но есть и хоть и не новая, но полезная новичкам информация. Наиболее интересные моменты:

  • Android использует три вида аутентификации (проще говоря: метода разблокировки экрана) с разным уровнем надежности и, соответственно, уровнем доступа: 1) пароль или пин-код — считается наиболее надежным и поэтому дает полный контроль над устройством без всяких ограничений; 2) отпечаток пальца или снимок лица — менее надежный, поэтому система запрашивает пароль после каждой перезагрузки телефона, а также через каждые 72 часа; 3) аутентификация по местоположению или близости определенного Bluetooth-устройства — наименее надежный метод, поэтому на него накладываются те же ограничения, что и на биометрический метод, плюс он не позволяет получить доступ к аутентификационным ключам Keymaster (например, тем, что используются для платежей), а принудительный запрос пароля происходит не через 72 часа, а уже через четыре.
  • Песочницы (изолированная среда исполнения) для приложений в Android реализованы с помощью запуска каждого приложения от имени созданного специально для него Linux-пользователя. Приложение имеет полный контроль над файлами своей песочницы ( /data/data/имя_пакета ), но не может получить доступ к файлам других приложений и многим системным файлам. Система также использует UID (идентификатор пользователя) для контроля полномочий приложения.
  • Контроль доступа на основе UID не распространяется на карты памяти и USB-накопители, так как зачастую они используют файловую систему FAT, которая не позволяет назначить права доступа к файлам. Чтобы решить эту проблему, Android использует виртуальную файловую систему (sdcardfs), которая подключается к каталогу /sdcard/Android . Приложения могут хранить данные внутри нее без опасения, что другие приложения получат к ним доступ. Также Android позволяет подключить карту памяти в режиме Adoptable Storage, когда SD-карта форматируется в зашифрованную ФС ext4 и становится частью внутреннего хранилища данных.
  • Единственный способ покинуть песочницу — получить права root. В Linux пользователь root имеет неограниченный доступ к файловой системе (ядро отключает любые проверки доступа для этого пользователя).
  • Для защиты ключей шифрования/аутентификации Android и приложения могут использовать Keymaster. Это подсистема, позволяющая хранить данные в TEE (Trusted Execution Environment), специальном микрокомпьютере внутри SoC, к которому имеет доступ только система. TEE позволяет защитить данные даже в том случае, если злоумышленник получил права root. Начиная с девятой версии Android также поддерживает StrongBox, выделенный чип TEE, разработанный самой Google. Он позволяет защититься от атак класса Rowhammer.
  • Для защиты от эксплуатации уязвимостей в системных компонентах Android использует SELinux, подсистему ядра Linux, позволяющую более тонко управлять правами доступа, а также контролировать доступ процессов к системным вызовам. К примеру, обнаружив в одном из системных компонентов уязвимость, взломщик может попытаться принудить этот компонент выполнить системный вызов exec для запуска root shell, но, если правила SELinux запрещают это делать данному компоненту, вызов будет отклонен.
  • Начиная с седьмой версии Android способен гарантировать, что ни операционная система, ни загрузчик не были скомпрометированы. Такая проверка называется Verified Boot и выполняется на этапе загрузки: сначала загрузчик сверяет контрольную сумму раздела boot, затем один из следующих компонентов загрузки сверяет контрольные суммы файлов в разделе system. Тот же механизм используется для защиты от отката на предыдущую версию прошивки, которая может содержать уязвимости. Производители вольны сами выбирать, как должна повести себя система в случае обнаружения нарушения: вывести на экран предупреждающее сообщение или прекратить загрузку.

Как работают атаки класса Cloak & Dagger

Cloak and Dagger — Mobile Malware Techniques Demystified — небольшая заметка о том, как работают атаки класса Cloak & Dagger. Мы писали об этом типе атак еще в 2017 году, но тогда рассмотрели только одну из них: кейлоггер, не требующий дополнительных прав в системе. Эта статья посвящена другой атаке, позволяющей заставить пользователя включить настройку доступа к AccessibilityService (позволяет перехватывать любые нажатия пользователя и нажимать кнопки интерфейса за него), замаскировав переключатель под нечто безобидное.

Атака использует разрешение SYSTEM_ALERT_WINDOW, которое приложения из Google Play получают автоматически. SYSTEM_ALERT_WINDOW позволяет выводить элементы интерфейса поверх других приложений, то есть реализовать такие вещи, как плавающие окна, меню, панели управления. Создатели вирусов быстро смекнули, что эту возможность можно использовать для перекрытия текущего окна на экране и обмана пользователя, поэтому с версией Android 5 Google выкатила защиту, которая проверяет, не был ли перекрыт какой-либо опасный для включения элемент интерфейса оверлеем, и отказывается его включить, если это так. Поэтому Cloak & Dagger вместо одного оверлея на весь экран создает несколько небольших и выкладывает их вокруг элемента управления, так что в результате защита не срабатывает.

Обход защиты на включение AccessibilityService с помощью трех-четырех оверлеев

Обход защиты на включение AccessibilityService с помощью трех-четырех оверлеев

Атака работает на Android версий 4.4.4–7.1.2, исходный код доступен.

В дополнение можно отметить еще одну статью на смежную тему: Android Toast Overlay Attack: “Cloak and Dagger” with No Permissions. Ее авторы пошли еще дальше и реализовали ту же атаку вообще без использования разрешения SYSTEM_ALERT_WINDOW. Вместо него они засунули все оверлеи в toast-сообщение, то самое, которое позволяет выводить в нижней части экрана информационные сообщения. Как оказалось, такие сообщения тоже представляют собой полноценные полноэкранные окна, большая часть которых прозрачна. И у приложения есть доступ к этому окну и возможность его изменять.

Как получить доступ к зашифрованной карте памяти

Recovering data from a failing Android adoptable storage — статья о том, как восстановить данные с карты памяти, отформатированной с помощью механизма Adoptable Storage. В отличие от обычного подключения SD-карты, Adoptable Storage создает на карте памяти зашифрованный том, форматирует его в файловую систему ext4, а затем подключает ее к основному хранилищу данных так, что на нее можно сохранять не только фотки с пляжа, но и приложения, их данные и любую другую информацию, которая обычно хранится только во внутренней памяти устройства. Другими словами, Adoptable Storage позволяет расширить встроенную память устройства.

Но есть одна, а точнее две смежные проблемы: 1) если вставить карту памяти в другой телефон — он ее не увидит из-за отсутствия ключа для расшифровки данных; 2) если что-то пойдет не так (например, карта памяти начнет сбоить), восстановить данные с нее не получится, точнее получится, но через одно место. Как через это место восстанавливать данные, описано в статье.

Для начала на телефоне необходимо получить права root. Затем подключить карту памяти к Linux-машине (macOS тоже должна подойти, но действия описаны именно для Linux) и снять ее образ. Обычный dd в этом случае не подойдет, так как, если карта памяти начала сбоить, он, скорее всего, вывалится с ошибкой Input/output error. Выручит ddrescue, который предназначен как раз для таких случаев:

Далее необходимо извлечь из памяти устройства ключ шифрования (на устройствах с активным модулем TEE такой трюк, скорее всего, не пройдет):

Используем полученный ключ, чтобы смонтировать файловую систему:

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

Как обойти ограничения на доступ к внутренним библиотекам и методам

Android Runtime Restrictions Bypass — статья о том, как обойти ограничения на доступ к внутренним библиотекам и методам Android.

Начиная с Android 7 Google ввела ограничения на прямую загрузку нативных системных библиотек (например, /system/lib/libart.so ). Позже, уже в релизе Android 9, появилось ограничение на доступ к определенным скрытым методам, которые раньше можно было вызывать с помощью рефлексии. Как оказалось, эти механизмы достаточно просто обойти.

Принцип работы механизма, ограничивающего загрузку библиотек, построен на пространствах имен. Если JNI-библиотека приложения попытается загрузить библиотеку, которая расположена за пределами каталогов /data , /mnt/expand или в песочнице самого приложения, оно будет завершено с такой ошибкой:

Проверка осуществляется в лоадере библиотек ( /system/bin/linker ), который создает для каждой JNI-библиотеки приложения структуру soinfo, которая хранит информацию о ней и пространствах имен, к которым она может получить доступ:

Все структуры soinfo размещены в мэпе g_soinfo_handles_map.

Интересно здесь то, что g_soinfo_handles_map — это экспортированная статическая переменная. Поэтому с помощью символьной таблицы ELF можно найти базовый адрес /system/bin/linker , рассчитать адрес g_soinfo_handles_map JNI-библиотеки и изменить структуру soinfo, добавив нужные пути в доступное ей пространство имен:

После этого попытка загрузить библиотеку будет успешной:

Ограничение доступа к внутренним методам Java API, предназначенным только для использования системными компонентами, реализовано иначе, а именно с помощью прямых проверок на доступ. Например, функция GetStaticMethodID, используемая для доступа к Java-методам из JNI-библиотеки, вызывает функцию FindMethodID, которая в том числе проверяет, доступен ли данный метод:

ShouldBlockAccessToMember() в конечном итоге вызывает метод Runtime::GetHiddenApiEnforcement(), который сообщает, стоит ли отклонить вызов или нет. При этом система может либо пропустить его без вопросов, либо вывести предупреждение, либо использовать черный и серый списки, которые содержат имена запрещенных к использованию методов.

Чтобы отключить проверку, мы должны перевести рантайм в режим «пропускать без вопросов» (EnforcementPolicy::kNoChecks), но для этого нам нужен доступ к самому рантайму:

Однако в этом случае компилятор (а точнее, линковщик) будет вынужден импортировать символ art::Runtime::instance_ в JNI-библиотеку, то есть слинковать ее с libart.so. И здесь мы столкнемся с ограничением пространства имен, а предложенный ранее метод его обхода не сработает, так как мы не сможем изменить пространство имен раньше, чем в память загрузится libart.so.

Но есть другой способ получить доступ к рантайму. Дело в том, что метод JNI_OnLoad, который запускается при загрузке JNI-библиотеки, в качестве первого аргумента получает указатель на art::JavaVMExt, который имеет метод GetRuntime(). Так что все, что нам остается, — это получить доступ к рантайму и отключить проверку:

Примечательно, что команда Android security team не считает описанные методы обхода нарушением безопасности (мол, не для безопасности они были придуманы), поэтому быстро дала согласие на обнародование информации и публикацию исходного кода PoC.

Описание уязвимостей в Android Download Provider

Multiple Vulnerabilities in Android’s Download Provider — статья исследователя, нашедшего три уязвимости в Android: CVE-2018-9468, CVE-2018-9493 и CVE-2018-9546. Все они затрагивают Download Content Provider, компонент, позволяющий любому приложению запустить загрузку файла из интернета так, чтобы пользователь видел уведомление с прогрессом загрузки.

  • CVE-2018-9468. Первая уязвимость заключается в том, что Download Content Provider позволяет увидеть любые другие загрузки, происходящие на устройстве, а не только свои собственные. Используя URL вида content://downloads/public_downloads/# , зловредное приложение может подобрать загрузку по номеру и, например, прочитать загруженный файл или подменить его сразу после загрузки. Причем это относится как к обновлениям ПО, так и к загрузкам из Google Play. Исходный код примера.
  • CVE-2018-9493. Вторая уязвимость — SQL-инъекция, позволяющая получить доступ к закрытым столбцам таблицы (например, CookieData). Исходный код примера.
  • CVE-2018-9546. Третья уязвимость позволяет извлечь HTTP-заголовки (могут включать аутентификационные данные и кукисы) для любой загрузки. Уязвимость использует тот же трюк, что и первая. Исходный код примера.

Данные уязвимости были исправлены в сентябрьском и ноябрьском security-патчах.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector