Android application security, частина 7

Файл AndroidManifest.xml є досить важливою частиною файлу APK (особливо коли мова йде про безпеку).

У файлі AndroidManifest.xml повинен бути згаданий кожен Service, ContentProvider, Activity, Broadcast Receiver.

Давайте розберемося детальніше в AndroidManifest.xml.

Метод # 1: з використанням Drozer.

У Drozer є модуль, який називається app.package.manifest. який показує вміст файлу AndroidManifest.xml зазначеного додатка в консолі Drozer.
Введіть в консоль Drozer run app.package.manifest org.owasp.goatdroid.fourgoats. і на екран виведеться інформація, наведена нижче.

[Spoiler title = 'AndroidManifest.xml' style = 'default' collapse_link = 'true']

Метод # 2: після декомпіляцію APK-файлу з використанням apktool.

Введіть в консоль apktool d «OWASP GoatDroid-FourGoats Android App.apk». після чого зазначений APK-файл програми FourGoats буде декомпілювати.

Тепер ви можете просто відкрити файл AndroidManifest.xml з створеної програмою папки.

Android application security, частина 7

Метод # 3: з використанням AndroGuard.

Використовується плагін AndroGuard в Sublime Text, який який виробляє всі дії набагато простіше, ніж працюючи з файлами androguard.
Нижче наведена анімація, яка описує даний процес:

Я б порадив дотримуватися методу # 1, тому що інші методи мають обмежену сферу застосування. Я не заперечую той факт, що apktool і AndroGuard - теж хороші інструменти, але не повністю підходять для цієї мети.

В Android компонент вважається відкритим, якщо атрибут exported (в AndroidManifest.xml) встановлено в true. Але він також є відкритим, якщо для нього встановлено атрибут intent-filter (intent-фільтр, «фільтр призначення»). Однак розробники можуть в явному вигляді робити компоненти закритими (незважаючи ні на які intent-фільтри), встановлюючи атрибут exported в false. Розробники можуть також встановлювати значення атрибута permission ( «дозволу») для отримання деяких дозволів для окремих компонентів, таким чином обмежуючи їх права.

[Spoiler title = 'AndroidManifest.xml (з поясненнями)' style = 'default' collapse_link = 'true']