Я получил Sony Xperia M4 Aqua с заблокированным загрузчиком, Android 6.01 и патчем безопасности от 1 июля 2016 года, но без подтверждения DM. Я хотел бы заморозить несколько заводских приложений с помощью pm disable
команды ADB (или любым другим возможным способом). Я пытался запустить, su pm disable package.name
но su
команда почему-то не распознается.
Я новичок в Linux, но у меня есть Android Studio с SDK и NDK, установленными на машине с lubuntu (также есть на машине с Windows 7).
Может ли кто-нибудь объяснить мне шаги, которые нужно предпринять, чтобы получить доступ к корневой оболочке с помощью эксплойта Dirty COW (или любым другим способом), чтобы иметь возможность замораживать приложения?
Причина, по которой команда не работает для вас, заключается в том, что «su» — это двоичный файл, который устанавливается путем рутирования вашего устройства. Без надлежащего рута у вас нет команды «su».
Чтобы использовать эксплойт Dirty COW, вам необходимо скомпилировать двоичный файл для архитектуры вашего устройства.
Перейдите на https://github.com/timwr/CVE-2016-5195 и загрузите или клонируйте файлы с помощью git.
(Необязательно) Если вы не знаете архитектуру своего устройства, установите на телефоне приложение «Информация об оборудовании Droid» из Play Store, откройте его и проведите пальцем влево, чтобы перейти на вкладку «Система». Рядом с меткой «Наборы инструкций» будет указана поддерживаемая вами архитектура.
На вашем компьютере откройте терминал и перейдите туда, где находятся файлы Dirty COW (при необходимости извлеките). Затем просто введите make (insert architecture here)
. Это создаст два двоичных файла внутри папки с libs/(your_architecture)/
именем dirtycow
& run-as
. В качестве альтернативы, если у вас включена отладка по USB, просто подключите устройство и введите make root
, и он отправит двоичные файлы на ваше устройство по адресу /data/local/tmp
, а затем автоматизирует несколько команд ADB для использования и предоставления вам ограниченной корневой оболочки.
Если вы не видите значок пользователя терминала, а #
вместо него видите значок $
, значит, в какой-то момент эксплойт не сработал. Поскольку файлы все еще находятся на устройстве, я бы предложил попробовать вручную исправить run-as
, используя adb shell
и набрав следующее...
chmod 777 /data/local/tmp/*
dirtycow /data/local/tmp/run-as /system/bin/run-as
/system/bin/run-as
Если это не запрашивает вас как пользователя root (#), то эксплойт не будет работать для вашего устройства таким образом, и вам нужно немного разобраться, почему это не так. Если это произойдет, попробуйте открыть вопрос в репозитории Github, он все еще довольно активен, поэтому вы должны получить ответ в ближайшее время.
В дополнение к ответу therealjayvi обратите внимание, что для компиляции и использования CVE-2016-5195 из timwr требуется также установить ADB и NDK до make [architecture]
и make root
, и это должно быть сделано из среды Linux.
Все либо предполагали, что пререквизиты были получены до этого, пререквизиты могли быть добавлены после комментария, либо об эксплойте CVE-2016-5195 было мало известно или ничего не было известно от человека, который оставил комментарий.
В любом случае, все это можно сделать следующим образом: во-первых, находясь в Linux (Ubuntu, Debian, Mint, доб.) и предполагая, что adb
он есть в вашем списке репозиториев apt
, как обычно по умолчанию, но не всегда. Если sudo
нет, используйте su
.
sudo apt-get install android-tools-adb
Загрузите последнюю версию Linux отсюда , затем распакуйте и запустите:
export PATH=$PATH:/root/directory/of/ndk/
Вам может потребоваться повторный запуск export
, если вы закроете текущий терминал, так как я не могу найти решение, которое остается.
Как только все это будет сделано, вы сможете последовать примеру @therealjayvi.
Dirty COW на Marshmallow ничего не может сделать из-за ограничений SELinux.
ответ therealjayvi - хорошее объяснение того, «как скомпилировать доказательство концепции Dirty COW». Но он не может даже ls
текущую папку, в которой он запущен.
/data/local/tmp$ run-as
/data/local/tmp# ls
opendir failed, permission denied
ls
расширением , вы можете записать поверх этого файла любой другой файл, двоичный файл, apk, что угодно, и он будет вести себя так, как если бы он был оригиналом, если вы вызвать оригинал по команде/имени./system
раздел или любой другой раздел, например boot
, подпись которого проверяется «проверенной загрузкой Android», устройство не загрузится, когда вы перезагружаетесь, так как проверенная загрузка завершится ошибкой при изменении корневого хэша раздела. Думаю, это то, что @MetNP пытался передать своим заявлением.
esQmo_
pm hide package_name
, и для этого не требуется root.Маркониониони
esQmo_
Маркониониони
Иззи
esQmo_
Маркониониони