Ethical Hacking Academy · Lektion

Android-appens struktur

APK-internals

Lektion 1 af 413 trin

Android-appens struktur er en gratis Ethical Hacking Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Ethical Hacking Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ethical Hacking Academy-kurset indeholder 4 lektioner i alt.

APK-filen

En Android-app leveres som en APK (Android-pakke). Den er i virkeligheden et ZIP-arkiv, der indeholder den kompilerede kode, ressourcer og metadata.

Fordi den er en ZIP-fil, kan du blot pakke den ud for at undersøge indholdet, hvilket er det første skridt i mobil-pentesting.

unzip app.apk -d app_extracted/

Inde i APK-filen

En udpakket APK indeholder:

  • AndroidManifest.xml: appens konfiguration.
  • classes.dex: kompileret bytekode.
  • res/ og resources.arsc: ressourcer.
  • lib/: native biblioteker.
  • META-INF/: signeringsoplysninger.

Manifestet

AndroidManifest.xml erklærer appens komponenter, tilladelser og konfiguration. I APK'en findes det i et binært XML-format, som værktøjer kan afkode.

Det er den vigtigste fil til at forstå en apps angrebsflade.

DEX og kørselstiden

Java/Kotlin-kildekode kompileres til DEX-bytekode (Dalvik Executable) i classes.dex. Moderne Android kører den via ART (Android Runtime).

DEX kan konverteres tilbage til kode, der er lettere at læse, og det er det, statisk analyse af APK'er udnytter.

De fire komponenter

Android-apps er bygget af fire komponenttyper:

  • Aktiviteter: skærme/brugergrænseflade.
  • Tjenester: arbejde i baggrunden.
  • Broadcast-modtagere: reagerer på systemhændelser.
  • Indholdsudbydere: deler data mellem apps.

Eksporterede komponenter

En komponent, der er markeret med android:exported="true", kan kaldes af andre apps. Hvis en sådan komponent udfører følsomme handlinger uden kontroller, udgør den en angrebsflade.

Penetrationstestere leder efter eksporterede aktiviteter, tjenester og udbydere, der lækker data eller udfører privilegerede handlinger.

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

Tilladelser

Apps anmoder om tilladelser i manifestet (f.eks. INTERNET, READ_SMS, ACCESS_FINE_LOCATION).

For bredt definerede tilladelser kan tyde på risikabel adfærd eller overdreven dataadgang. Brugerdefinerede tilladelser kan også være fejlkonfigureret, så de tillader uautoriseret adgang.

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

Appens sandkasse

Android isolerer hver app i sin egen sandkasse med et unikt Linux-UID. Som standard kan apps ikke læse hinandens data.

Sårbarheder opstår, når apps svækker denne grænse, f.eks. med filer, der kan læses af alle, eller eksponerede udbydere.

Lagring af appdata

En installeret app gemmer private data under /data/data/<package>/: databaser, delte præferencer og filer.

På en rootet enhed eller via sikkerhedskopier undersøger en penetrationstester denne mappe for hemmeligheder, der er gemt usikkert. Det udforsker en senere lektion.

/data/data/com.example.app/

Signering

Alle APK'er er digitalt signeret; signaturen ligger i META-INF/. Android verificerer den ved installation og ved opdateringer.

Hvis du ændrer og pakker en app om, skal du signere den igen. Derfor bruger udviklere signering til at opdage manipulation.

Native biblioteker

Ydeevnekritisk eller sløret logik kan ligge i native biblioteker (.so-filer) under lib/, kompileret fra C/C++.

De findes ikke i DEX og kræver derfor separat analyse med native disassembleringsværktøjer. Udviklere skjuler somme tider hemmeligheder her, fordi de fejlagtigt tror, at native kode er sværere at undersøge.

lib/arm64-v8a/libnative.so

Hurtigt tjek

Husk, hvilken manifestattribut der eksponerer en komponent for andre apps.

Opsummering

Du forstår nu Android-appens struktur:

  • En APK er en ZIP-fil, der indeholder AndroidManifest.xml, classes.dex, ressourcer og signeringsdata.
  • Apps bruger fire komponenter; eksporterede komponenter udgør en angrebsflade.
  • Tilladelser og den appspecifikke sandkasse styrer adgangen; private data ligger i /data/data/.
  • APK'er er signerede for at opdage manipulation.

Derefter skal du dekompilere en APK i en statisk analyse.

Gratis at komme i gang

Lær Ethical Hacking Academy med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
31
Lektioner
111

Ofte stillede spørgsmål

Er lektionen “Android-appens struktur” gratis?

Ja — hele teksten til “Android-appens struktur” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Ethical Hacking Academy-kurset, skal du opgradere til CoddyKit PRO. Ethical Hacking Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Android-appens struktur”?

APK-internals Du øver dig i Ethical Hacking Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Ethical Hacking Academy?

Der kræves ingen tidligere erfaring. Ethical Hacking Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Android-appens struktur”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Ethical Hacking Academy-lektion?

Ja. Alle Ethical Hacking Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Android-appens struktur
  2. Statisk analyse af APK'er
  3. Dynamisk analyse med Frida
  4. Usikker lagring og kommunikation
← Tilbage til Ethical Hacking Academy