0Pricing
Ethical Hacking Academy · Lekcja

Struktura aplikacji Android

Wnętrze pliku APK

Struktura aplikacji Android to bezpłatna lekcja Ethical Hacking Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ethical Hacking Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.

Plik APK

Aplikacja na Androida jest dostarczana jako APK (Android Package). W rzeczywistości jest to archiwum ZIP zawierające skompilowany kod, zasoby i metadane.

Ponieważ jest to plik ZIP, można go po prostu rozpakować i przejrzeć zawartość, co stanowi pierwszy krok w testach penetracyjnych aplikacji mobilnych.

unzip app.apk -d app_extracted/

Zawartość pliku APK

Rozpakowany plik APK zawiera:

  • AndroidManifest.xml: konfigurację aplikacji.
  • classes.dex: skompilowany kod bajtowy.
  • res/ i resources.arsc: zasoby.
  • lib/: biblioteki natywne.
  • META-INF/: informacje o podpisie.

Manifest

Plik AndroidManifest.xml deklaruje komponenty, uprawnienia i konfigurację aplikacji. W pliku APK ma postać binarnego XML, który można zdekodować za pomocą odpowiednich narzędzi.

Jest to najważniejszy pojedynczy plik pozwalający zrozumieć powierzchnię ataku aplikacji.

DEX i środowisko uruchomieniowe

Źródła w językach Java/Kotlin są kompilowane do kodu bajtowego DEX (Dalvik Executable) w pliku classes.dex. Współczesny Android uruchamia go za pośrednictwem ART (Android Runtime).

DEX można przekształcić z powrotem w kierunku czytelnego kodu, co wykorzystuje się w analizie statycznej plików APK.

Cztery komponenty

Aplikacje na Androida są zbudowane z czterech typów komponentów:

  • Activities: ekrany i interfejs użytkownika.
  • Services: zadania wykonywane w tle.
  • Broadcast Receivers: reagują na zdarzenia systemowe.
  • Content Providers: udostępniają dane między aplikacjami.

Eksportowane komponenty

Komponent oznaczony jako android:exported="true" może być wywoływany przez inne aplikacje. Jeśli taki komponent wykonuje wrażliwe działania bez kontroli, stanowi powierzchnię ataku.

Testerzy penetracyjni wyszukują eksportowane aktywności, usługi i dostawców treści, które ujawniają dane lub wykonują uprzywilejowane działania.

<activity android:name=".AdminActivity" android:exported="true"/>

Uprawnienia

Aplikacje żądają uprawnień w manifeście (na przykład INTERNET, READ_SMS, ACCESS_FINE_LOCATION).

Zbyt szerokie uprawnienia mogą wskazywać na ryzykowne zachowanie lub nadmierny dostęp do danych. Niestandardowe uprawnienia również mogą być błędnie skonfigurowane i umożliwiać nieuprawniony dostęp.

<uses-permission android:name="android.permission.READ_SMS"/>

Piaskownica aplikacji

Android izoluje każdą aplikację we własnej piaskownicy z unikatowym identyfikatorem UID systemu Linux. Domyślnie aplikacje nie mogą odczytywać danych należących do siebie nawzajem.

Podatności powstają, gdy aplikacje osłabiają tę granicę, na przykład udostępniając pliki do odczytu dla wszystkich lub ujawniając dostawców treści.

Przechowywanie danych aplikacji

Zainstalowana aplikacja przechowuje prywatne dane w katalogu /data/data/<package>/: bazy danych, preferencje współdzielone i pliki.

Na zrootowanym urządzeniu lub za pośrednictwem kopii zapasowych tester penetracyjny sprawdza ten katalog pod kątem niebezpiecznie przechowywanych sekretów, co omawia późniejsza lekcja.

/data/data/com.example.app/

Podpisywanie

Każdy plik APK jest cyfrowo podpisany; podpis znajduje się w katalogu META-INF/. Android weryfikuje go podczas instalacji i aktualizacji.

Po zmodyfikowaniu i ponownym spakowaniu aplikacji trzeba podpisać ją ponownie, dlatego deweloperzy polegają na podpisach przy wykrywaniu manipulacji.

Biblioteki natywne

Logika wymagająca wysokiej wydajności lub zaciemniona może znajdować się w bibliotekach natywnych (plikach .so) w katalogu lib/, skompilowanych z języka C/C++.

Nie znajdują się one w DEX, dlatego wymagają osobnej analizy za pomocą natywnych dezasemblerów. Deweloperzy czasem ukrywają tu sekrety, błędnie zakładając, że kod natywny jest trudniejszy do zbadania.

lib/arm64-v8a/libnative.so

Szybkie sprawdzenie

Proszę przypomnieć sobie, który atrybut manifestu udostępnia komponent innym aplikacjom.

Podsumowanie

Znają już Państwo strukturę aplikacji na Androida:

  • APK to plik ZIP zawierający AndroidManifest.xml, classes.dex, zasoby i dane dotyczące podpisu.
  • Aplikacje korzystają z czterech komponentów; eksportowane komponenty stanowią powierzchnię ataku.
  • Uprawnienia i osobna dla każdej aplikacji piaskownica określają zasady dostępu; prywatne dane znajdują się w /data/data/.
  • Pliki APK są podpisywane w celu wykrywania manipulacji.

W następnej części przeprowadzą Państwo dekompilację pliku APK w ramach analizy statycznej.

Często zadawane pytania

Czy lekcja „Struktura aplikacji Android” jest bezpłatna?

Tak — pełny tekst „Struktura aplikacji Android” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ethical Hacking Academy, przejdź na CoddyKit PRO. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Struktura aplikacji Android”?

Wnętrze pliku APK Ćwiczysz Ethical Hacking Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Ethical Hacking Academy?

Nie wymagamy żadnego doświadczenia. Ethical Hacking Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Struktura aplikacji Android”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Ethical Hacking Academy?

Tak. Każda lekcja Ethical Hacking Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Struktura aplikacji Android
  2. Analiza statyczna plików APK
  3. Analiza dynamiczna za pomocą Frida
  4. Niebezpieczne przechowywanie i komunikacja
← Powrót do Ethical Hacking Academy