0Pricing
Ethical Hacking Academy · Lezione

Struttura delle app Android

Struttura interna degli APK

Struttura delle app Android è una lezione Ethical Hacking Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ethical Hacking Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ethical Hacking Academy include 4 lezioni in totale.

Il file APK

Un'app Android viene distribuita come APK (Android Package). In realtà è un archivio ZIP contenente il codice compilato, le risorse e i metadati.

Essendo un file ZIP, può semplicemente decomprimerlo per esaminarne i contenuti: è il primo passo nel pentesting mobile.

unzip app.apk -d app_extracted/

Dentro l'APK

Un APK estratto contiene:

  • AndroidManifest.xml: configurazione dell'app.
  • classes.dex: bytecode compilato.
  • res/ e resources.arsc: risorse.
  • lib/: librerie native.
  • META-INF/: informazioni sulla firma.

Il manifest

AndroidManifest.xml dichiara i componenti, le autorizzazioni e la configurazione dell'app. Nell'APK si trova in formato XML binario, che gli strumenti possono decodificare.

È il file più importante in assoluto per comprendere la superficie di attacco di un'app.

DEX e il runtime

Il codice sorgente Java/Kotlin viene compilato nel bytecode DEX (Dalvik Executable) contenuto in classes.dex. Le versioni moderne di Android lo eseguono tramite ART (Android Runtime).

Il DEX può essere convertito nuovamente in una forma vicina al codice leggibile: è ciò che sfrutta l'analisi statica degli APK.

I quattro componenti

Le app Android sono costituite da quattro tipi di componenti:

  • Activities: schermate / interfaccia utente.
  • Services: attività in background.
  • Broadcast Receivers: rispondono agli eventi di sistema.
  • Content Providers: condividono dati tra le app.

Componenti esportati

Un componente contrassegnato con android:exported="true" può essere invocato da altre app. Se un componente di questo tipo esegue azioni sensibili senza controlli, costituisce una superficie di attacco.

I pentester cercano activities, services e providers esportati che divulgano dati o eseguono azioni privilegiate.

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

Autorizzazioni

Le app richiedono autorizzazioni nel manifest (ad esempio INTERNET, READ_SMS, ACCESS_FINE_LOCATION).

Autorizzazioni eccessivamente ampie possono indicare comportamenti rischiosi o un accesso ai dati superiore al necessario. Anche le autorizzazioni personalizzate possono essere configurate erroneamente e consentire accessi non autorizzati.

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

Sandbox dell'app

Android isola ogni app nella propria sandbox, associata a un UID Linux univoco. Per impostazione predefinita, le app non possono leggere i dati delle altre.

Le vulnerabilità emergono quando le app indeboliscono questo confine, ad esempio con file leggibili da chiunque o provider esposti.

Archiviazione dei dati dell'app

Un'app installata memorizza i dati privati in /data/data/<package>/: database, preferenze condivise e file.

Su un dispositivo con root o tramite i backup, un pentester esamina questa directory alla ricerca di segreti memorizzati in modo non sicuro, argomento che verrà approfondito in una lezione successiva.

/data/data/com.example.app/

Firma

Ogni APK è firmato digitalmente; la firma si trova in META-INF/. Android la verifica durante l'installazione e negli aggiornamenti.

Se modifica e riconfeziona un'app, deve firmarla nuovamente: per questo gli sviluppatori si affidano alla firma per rilevare manomissioni.

Librerie native

La logica critica per le prestazioni o offuscata può trovarsi nelle librerie native (file .so) sotto lib/, compilate da C/C++.

Queste librerie non fanno parte del DEX, quindi richiedono un'analisi separata con disassembler nativi. A volte gli sviluppatori vi nascondono segreti, credendo erroneamente che il codice nativo sia più difficile da esaminare.

lib/arm64-v8a/libnative.so

Verifica rapida

Ricordi quale attributo del manifest espone un componente alle altre app.

Riepilogo

Ora conosce la struttura delle app Android:

  • Un APK è un file ZIP che contiene AndroidManifest.xml, classes.dex, risorse e dati della firma.
  • Le app usano quattro componenti; quelli esportati costituiscono una superficie di attacco.
  • Le autorizzazioni e la sandbox specifica di ogni app regolano l'accesso; i dati privati si trovano in /data/data/.
  • Gli APK sono firmati per rilevare le manomissioni.

Nella prossima lezione decompilerà un APK mediante l'analisi statica.

Domande Frequenti

La lezione «Struttura delle app Android» è gratuita?

Sì — il testo completo di «Struttura delle app Android» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ethical Hacking Academy, passa a CoddyKit PRO. Il corso Ethical Hacking Academy include 4 lezioni in totale.

Cosa imparerò in «Struttura delle app Android»?

Struttura interna degli APK Eserciti Ethical Hacking Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ethical Hacking Academy?

Non è richiesta alcuna esperienza precedente. Ethical Hacking Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Struttura delle app Android»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ethical Hacking Academy?

Sì. Ogni lezione Ethical Hacking Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Struttura delle app Android
  2. Analisi statica degli APK
  3. Analisi dinamica con Frida
  4. Archiviazione e comunicazioni non sicure
← Torna a Ethical Hacking Academy