Про production build и root. Часть 2.

Android girl

Продолжаем первую часть статьи. Ссылка на первую часть есть выше.

Есть два метода, которые собственно и являются одними из методов получения root доступа на Android устройствах.

Первый и очевидный - отредактировать файл самой прошивки специальным образом и прошить её в устройство с компьютера. Так собственно и работают некоторые "рутовалки", которые прошивают "скрипт" из рекавери режима (на деле прошивают часть раздела).

Второй - очень старый эксплоит, он работал только в Android версий до 2.2 включительно. Он использует ошибку в ADB. Изначально ADB всегда запускается от root'а. А затем права сбрасываются. Вот кусок кода из этого старого ADB:

Код ADB

Из него следует, что он читает значение ro.secure. Если там стоит 1 (production build), только дальше по тексту кода права сбрасываются до уровня пользователя (setgid/setuid).

Эксплоит использовал простую особенность функций setuid/setgid - если нет ресурсов для смены владельца процесса, смена владельца не происходит. А проверки на это в коде ADB нет! Следовательно эксплоит просто занимал все ресурсы и потом перезапускал ADB. Бах, и он не смог понизить привилегии и остался с правами root. Получен временный root - можно дальше уже и постоянный делать.

Конечно второй метод уже давно устарел, но как говориться для исторической справки, да и вообще полезно будет знать как оно устроено в целом. Тем более, что про такие вещи по русски вы нигде не прочитаете. smiley

Надеюсь вам было интересно, а вопросы и подробности вы как всегда сможете сможете выяснить в комментариях!

Оцените статью: 
В среднем: 4.8 (проголосовало 29)

Комментарии (1)

Офигеть чётка

Добавить комментарий

Войти, используя один из провайдеров Google Account Yandex Mail.ru API Mail.ru Vkontakte Facebook Twitter Loginza MyOpenID WebMoney Rambler Flickr Last.fm Verisign AOL OpenID

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.