Как стать автором
Обновить

Комментарии 3

Спасибо за ссылку! Действительно, довольно подробная статья. Там углубление в работу Looper (о чём я осознанно не стал писать в своей статье) и запуск Activity. У меня же больше про процесс Zygote и вызов метода main в нём. Надеюсь, статья вышла полезной!

Механизм работы Zygote позволяет оптимизировать запуск приложений, но обладает и недостатками. Например — раз этот процесс является базовым для всех приложений, то можно заразить его трояном, который затем прорастет в каждое приложение. Так работает один из самых страшных троянов в Android — Triada. А делать он может всё что угодно — например, перехватывать и читать ваши смс. Вывод банальный — не стоит устанавливать на устройство приложения из сомнительных источников.

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

Исследователей интересует возможность заглянуть под капот работающим процессам, исследовать механизмы работы приложений, техники внедрения зловредов, и т.д. Продвинутых пользователей, например - дать щелбан по носу чересчур любопытной операционной системе и системам трекинга и аналитики, собирающим и отправляющим 24/7 информацию о каждом чихе сделанном пользователем на устройстве, которые сейчас встроены в 99% андроид приложений, или починить в системе что-то, что Гугл упорно не хочет исправлять, например систему пермишенов, или никогда не будет исправлять, например то, что помогает им собирать информацию о владельце устройства. Ключевая идея - иметь возможность выполнить произвольный код или переопределить поведение интерфейса системы ДО передачи управления запущенному процессу.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации