Bentornati, ragazzi.
In questo video vogliamo parlare dell'eczema manifest di Android perché, a mio parere, questo è il
file di configurazione più importante se analizziamo un'applicazione Android.
Cosa rende questo file così importante per noi?
Questo lo scopriremo subito.
Diamo un'occhiata.
Va bene.
Eccoci di nuovo nella macchina virtuale Ubuntu e ho preparato una piccola applicazione in cui possiamo analizzare un manifest
XML di Android.
Troverete quindi questa applicazione come allegato della sezione.
L'ho già preso qui.
Questo, questo punto apk della privacy.
Quindi la prima domanda è: come possiamo ottenere il manifest di Android da questo file?
Abbiamo visto due opzioni: unzip e apk tool d unzipping.
Non ci porta alcun vantaggio perché l'esempio di manifest di Android sarà ancora nel suo formato binario
proprietario.
Pertanto, è necessario utilizzare lo strumento APK con l'opzione DX, che decodifica questo file binario in un semplice
file XML.
Va bene, allora facciamo così.
Faccio clic con il tasto destro del mouse su Apri un nuovo terminale perché sono direttamente
in questa directory e poi APK tool D su questo apk della privacy.
Bene, possiamo vedere la decodifica di Android Manifest Mel, sia le risorse che tutte le altre opzioni, ad
esempio le classi, il testo e così via.
E se date un'occhiata a questo, ecco, lo abbiamo proprio ora.
Passiamo alle celle DV per l'editor di codice.
Quindi aprite con un'altra applicazione ed ecco fatto.
Ops.
Non questo.
Eccolo qui.
Ho anche.
Sì.
Già abilitata la selezione della lingua XML.
Questo viene fatto per impostazione predefinita e abilita anche l'avvolgimento dei verbi.
Poi abbiamo tutto sulla pagina.
Quindi le righe saranno semplicemente interrotte qui, ad esempio, per non dover scorrere a
destra.
Ok.
Abbiamo quindi questo file, dividiamolo un po' e portiamolo nel modello grafico.
Quindi lo dividiamo qui e abbiamo il permesso di Guten Tag Users.
Se abbiamo il permesso, abbiamo delle domande.
Ecco un servizio di ricezione di un fornitore di tecnologia applicativa.
Potete vedere che abbiamo un sacco di roba qui dentro.
Questo è il massimo di cui abbiamo bisogno durante il corso.
Ci sono un sacco di cose nuove che potrebbero non essere familiari per alcune di queste query.
Ma è per questo che siamo qui.
Ne abbiamo discusso proprio ora.
Ok.
Quindi credo che questo sia un buon risultato.
Sì.
Passiamo quindi al modello grafico e diamo un'occhiata più approfondita a questo
file.
Facciamo così.
Va bene.
Eccoci quindi tornati alla tavoletta grafica.
Scopriamo ora cosa rende questo file così importante per un'applicazione Android, perché
questo è il primo file che esaminerò.
Se analizzo un'applicazione, e scopriamolo subito, iniziamo dalla riga uno perché analizzeremo
ogni singola riga qui dentro.
Quindi questa qui, la prima metà di questa riga non è poi così importante.
A questo punto la situazione si fa interessante.
Ok.
Quindi cosa abbiamo qui?
Abbiamo la versione 30 dell'SDK di compilazione Android e il nome in codice della versione SDK di compilazione Android.
Permettetemi di togliere di mezzo il cursore.
11.
Ciò significa che lo sviluppatore ha utilizzato le impostazioni del compilatore per la versione 11 di Android, ovvero questa.
Android versione 11 e il livello dell'applicazione per Android versione otto è il livello API 30.
Quindi questo è uno.
Questo qui, è solo il livello AP, l'applicazione.
Perché non è importante?
Perché significa che ogni opzione di sicurezza fino alla versione 11 di Android è inclusa in questa
app.
Ad esempio, nella versione sette di Android non ci sono stati grandi cambiamenti per quanto riguarda la relazione di
fiducia dei certificati.
L'archiviazione utente di uno smartphone Android non è più attendibile come impostazione predefinita e ciò significa che l'impostazione
di sicurezza viene utilizzata in questa applicazione qui.
Anche per quanto riguarda due aspetti come la visibilità dei ricevitori broadcast o cose del genere, finora non abbiamo parlato
di tutti questi componenti, del ricevitore broadcast, del pinning dei certificati e cose del genere,
e questa versione è dedicata all'esempio del manifest di Android.
Eppure, ad essere onesti, devo usare questi componenti molto spesso durante questo file.
Ma non preoccupatevi, in questo corso daremo uno sguardo approfondito a ciascuno di essi.
Questo file è solo una panoramica di questa applicazione e quindi non preoccupatevi troppo se non riuscite a seguire
alcuni termini in questo momento perché non li abbiamo ancora discussi.
Va bene, perfetto.
Ok, torno a parlare di questo.
Ora tutte le funzioni di sicurezza fino alla versione 11 di Android sono incluse in questa applicazione.
Va bene.
Poi, la cosa si fa ancora più interessante perché questo qui è il nome del pacchetto.
Il nome del pacchetto è una sorta di identificatore unico per questa applicazione.
Così unico.
Va bene.
Immagino sia difficile da leggere, ma comunque possibile.
Va bene.
Quindi l'identificatore unico, sì, è un identificatore unico per questa applicazione, ma non è
il rapporto di fiducia tra uno sviluppatore e un'applicazione.
Che cosa significa?
Diamo un'occhiata.
E questo è l'identificatore unico.
Installiamo ora questa applicazione sul nostro smartphone.
Ecco il nostro smartphone.
Giusto?
E ora abbiamo questa applicazione e questa qui.
Quindi questo viene installato qui.
Questo significa che possiamo avere solo un'applicazione con questo identificatore e questo, rendiamolo più drammatico sul
nostro dispositivo.
Se ora proviamo a installare un'altra applicazione e questa, ad esempio, con lo stesso identificatore
qui.
Quindi questo.
Allora riceviamo un errore perché lo smartphone sta dicendo.
No, ho già un'applicazione con questo identificatore univoco sul dispositivo e non si tratta di questa
applicazione qui.
Il controllo si basa sul certificato di firma.
Non preoccupatevi, parleremo della firma più avanti.
Ma non è nemmeno così rilevante.
Tutto quello che dobbiamo sapere ora è che non possiamo avere due applicazioni con lo stesso nome in esecuzione sul nostro dispositivo.
Ma perché questo è importante o interessante?
Perché l'identificatore del pacchetto non è una sorta di rapporto di fiducia con un determinato sviluppatore.
Supponiamo di aver ottenuto un'applicazione di condivisione sul nostro dispositivo, questa.
E sì, non conosco un nome, quindi chiamiamolo così, ad esempio, WhatsApp.
WhatsApp ha un identificatore univoco, qualcosa di simile a Facebook o Meta.
Non sono sicuro di questo al momento.
Ha un identificatore unico.
Va bene.
Ma questo identificatore può essere scelto anche da ogni sviluppatore.
Quindi, se sviluppo un'applicazione, posso scegliere l'identificatore di pacchetto che preferisco.
In questo caso, diciamo che sto usando esattamente lo stesso identificatore di pacchetto.
E se l'utente non ha già installato WhatsApp sul dispositivo, allora la mia applicazione verrà installata
e sembrerà assolutamente legittima fino a quando l'utente non proverà a entrare nella vera applicazione di WhatsApp.
In questo caso, ad esempio, tramite il Google Play Store.
L'utente riceve un errore perché sul dispositivo è già presente un'applicazione con questo identificatore
di pacchetto.
Va bene.
Quindi non significa che se l'identificatore del pacchetto arriva da Facebook, WhatsApp o cose del genere, questa
sia l'applicazione originale.
Potrebbe essere in Fake e Trojan Horse o cose del genere.
Va bene.
Ok.
Questo è un fatto importante dell'identificatore del pacchetto.
L'altro è che anche noi, in qualità di aggressori, lo utilizziamo spesso, perché possiamo usare questo identificatore
di pacchetto per indirizzare l'applicazione ai nostri script, strumenti o anche all'interno della shell ADB, possiamo usare
questo identificatore di pacchetto per puntare a una determinata applicazione su questo dispositivo.
Si tratta quindi di un'informazione utile e importante per noi.
Va bene.
Lasciatemi fare un po' di pulizia e poi passiamo a questo punto.
Ok.
Torniamo a questo.
Quindi, alla fine di questa riga, abbiamo questa parte, che non è molto rilevante perché è solo il codice
della versione di build, che significa che lo sviluppatore ha verificato che questa applicazione
funziona con il livello API 30 o con la versione 11 di Android, niente di più.
La parte importante è quella in verde in questa parte qui.
In questo modo ci si assicura quale compilatore sia stato usato per costruire questa applicazione, e quale versione sia stata compilata,
in questo caso la versione 11 di Android.
Quindi dobbiamo anche soddisfare i requisiti e le caratteristiche di sicurezza di questa versione.
E poi abbiamo finito la prima riga.
Ma non preoccupatevi, il prossimo sarà un po' più veloce, almeno lo spero.
Ok.
Cosa abbiamo adesso?
Poi, abbiamo queste tre linee.
E cosa abbiamo qui?
Abbiamo l'autorizzazione degli utenti e l'autorizzazione di Android.
Leggere i contatti, Internet, leggere la memoria esterna.
Queste sono le autorizzazioni che la nostra applicazione Android può utilizzare.
Non significa che vengono utilizzati, ma che l'applicazione ha la possibilità di utilizzarli, in modo da poter
accedere ai nostri contesti.
Questo qui.
Se l'utente concede questa autorizzazione alla nostra applicazione.
Bene, allora l'applicazione può eseguire alcune richieste di rete con l'autorizzazione di Internet.
Ma è piuttosto comune in questo momento.
Infine, questo aspetto è un po' importante per un attaccante, perché significa che l'applicazione
sta interagendo con la memoria esterna del nostro smartphone.
Va bene.
Quindi, ogni volta che l'applicazione vuole eseguire determinate operazioni, come accedere al microfono,
alla fotocamera, alle foto e cose del genere, questa autorizzazione deve essere inclusa nel manifest
XML.
Non possono essere aggiunti in seguito.
È necessario includerli inizialmente.
Questo ci dà anche una buona panoramica di ciò che questa app è in grado di fare, potrebbe interagire con il contesto
e anche con la memoria esterna.
Dovremmo quindi capire cosa sta facendo questa applicazione.
Il contesto, sì, potrebbe essere importante, ma questo qui, la lettura della memoria esterna, potrebbe
essere un po' più importante.
Perché?
Diamo una rapida occhiata alla struttura dei dati di un'applicazione Android e a come vengono gestiti.
Avremo video approfonditi su questo argomento, ma per ora vediamo perché questo è importante
per noi.
Ok, ecco il nostro smartphone e questa volta è giallo.
Se installiamo la nostra applicazione e questa viene installata in una directory protetta, le applicazioni
vengono messe in sandbox.
Ne parleremo quando parleremo delle autorizzazioni.
Ok.
Quindi la directory Sandbox si trova su quei dati.
Dati e poi il nome del pacchetto di questa applicazione.
Ok.
Si tratta quindi di una directory protetta.
Altre applicazioni non sono in grado di interagire o vedere questi dati.
Se abbiamo privilegi di root o di sistema, è un'altra storia.
Ma altre applicazioni normali non possono farlo.
Ma a volte è importante che le applicazioni condividano o accedano ai media condivisi.
Ad esempio, la directory dei download musicali, la directory delle foto e altre cose del genere.
Quindi questi file vengono memorizzati in una directory pubblica disponibile, che è la scheda SD.
Quindi non è un'applicazione al momento.
Si tratta di una directory e di una scheda SD disponibili al pubblico.
E questo non significa che al momento sia un po' confuso, ma non significa che si tratti di una scheda SD fisica
nel nostro dispositivo.
Quindi, collegata a questo dispositivo in questo momento, la scheda SD, credo che il termine derivi dall'EMC,
che è cos'era?
Un gatto multimediale incorporato, credo.
Sì, credo.
Catalogo multimediale incorporato.
È praticamente la stessa cosa di una scheda SD.
Quindi, anche se non c'è una scheda SD fisica collegata al dispositivo, il nome della directory
sarà comunque scheda SD basata sull'EMC.
È solo un chip flash.
Ok.
Va bene.
La scheda SD contiene quindi diverse directory, ad esempio la directory dei download o quella
della musica, i documenti e altro ancora.
Perché è importante?
Perché potrebbe significare che questa applicazione memorizza alcuni dati sensibili sulla scheda SD, o che sta recuperando
alcuni dati che vengono utilizzati in questa applicazione.
In questo caso, abbiamo una memoria esterna in lettura, quindi potrebbe semplicemente recuperare i dati da un file qui.
E a seconda dei dati che l'applicazione sta recuperando, ciò potrebbe influire sul flusso di lavoro o, ad esempio, sulla
sicurezza dell'applicazione stessa.
L'aggressore potrebbe abusarne nel seguente modo: l'aggressore ottiene anche questa autorizzazione,
anche quella giusta, ad esempio.
Quindi l'aggressore inserisce la propria applicazione sullo smartphone e modifica questo file.
Diciamo che questa è la directory che verrà letta in seguito.
Da qui l'applicazione modifica questo file che viene poi utilizzato in questa applicazione.
Va bene.
Quindi la situazione è degenerata un po'.
Lasciatemi pulire questo punto.
Ok.
Ciò significa che se vengono visualizzate autorizzazioni come la lettura dell'archiviazione esterna, è necessario verificare cosa fa
l'applicazione con questa autorizzazione.
È questa la chiave di lettura dell'intero disegno in questo momento.
Va bene.
Ok.
Pulire e poi tornare a questo.
Ok.
Poi, abbiamo questa linea qui e qui.
Dobbiamo essere molto precisi su ciò che leggiamo.
Abbiamo il permesso.
E se si considerano entrambe le cose, si può usare questo permesso.
Quindi le autorizzazioni gialle sono autorizzazioni predefinite, utilizzate da questa applicazione.
Ma ora in questo caso si sta definendo il proprio permesso.
E questo è un aspetto che sfrutteremo molto durante il corso.
Pertanto, l'applicazione può anche definire un proprio permesso.
E qui c'è l'etichetta, cosa sta facendo questo permesso.
Qui possiamo vedere che la lettura dell'utente permette di inserire o meno qualche errore di battitura nelle informazioni dell'utente.
Ma è una descrizione, quindi va benissimo.
Questa è la descrizione di questa.
Così ci è consentito ridurre le informazioni e poi dimentichiamo il nome.
Il nome è ora il nome se si vuole richiedere questa autorizzazione all'interno della nostra applicazione.
E poi abbiamo ottenuto il livello di protezione e la pericolosità in questo qui.
Ne parleremo diffusamente nei video comuni.
In sintesi, significa semplicemente che un'applicazione può definire i propri permessi.
Se si desidera eseguire un'attività sensibile, ma si vuole condividerla con altre applicazioni,
queste possono chiedere di richiederla.
E se l'utente ci concede l'autorizzazione, allora possono scambiarsi i dati tra loro.
Ok, ecco cosa definisce questo qui.
Quindi, all'interno della nostra applicazione Android, possiamo utilizzare le autorizzazioni esistenti o crearne di nostre.
E questo è importante perché lo sfrutteremo durante il corso.
Va bene.
Ok, poi abbiamo questa, questa query.
Questa è una funzione di sicurezza di Android che è stata implementata, credo, nella versione 8 e successive.
Ma non citate me su questo punto.
Ciò significa che se la nostra applicazione vuole scambiare dati con un'altra applicazione tramite un componente and, ad
esempio, nel ricevitore broadcast, deve essere visibile per l'altra applicazione.
In questo caso, al momento si tratta dell'applicazione C.
Quindi credo che un disegno spiegherà meglio questo aspetto.
Quindi diciamo che abbiamo qui la nostra applicazione C e qui abbiamo la nostra applicazione, l'applicazione privacy
privacy.
Se ora si desidera scambiare dati con questa applicazione, è necessario comunicare all'applicazione C che abbiamo effettuato l'accesso.
E questo è esattamente ciò che fa questo parametro qui.
Ci dice se, ehi, noi esistiamo sullo smartphone e vogliamo recuperare i dati che abbiamo richiesto.
Questo dovrebbe essere un occhio.
Forse non è così chiaro, ma credo che vada bene così.
Quindi ora questa applicazione sa che siamo un'applicazione sullo smartphone ed esistiamo.
Stiamo richiedendo dei dati e possiamo vedere se ci restituisce i dati.
Va bene.
Ecco cosa significa questo parametro.
Questo verrà utilizzato anche nel caso in cui si scriva una propria applicazione di controllo per bypassare le schermate di registrazione,
estrarre informazioni sensibili o eseguire un accesso arbitrario ai file, allora questo qui sarà necessario.
Per questo motivo l'ho inclusa.
Bene, vediamo che abbiamo già un sacco di cose nel nostro file di configurazione e ora ci concentriamo sulla
seconda metà.
Qui abbiamo la tecnologia di applicazione.
Inizia qui e finisce qui.
Ok, vediamo cosa c'è all'interno di questa tecnologia applicativa in questo momento.
Per questo ho scelto un nuovo colore.
E vediamo, questa è la prima voce interessante consentita.
Vero.
Ciò significa che possiamo eseguire il backup, ad esempio, dalla shell ADB e i dati di questa applicazione saranno
inclusi nel nostro backup.
Non significa che si tratti di informazioni sensibili incluse nel nostro backup, come credenziali o token
o cose del genere.
Significa solo che alcuni dati verranno salvati.
Quindi la configurazione viene effettuata dall'applicazione stessa.
Ma sappiamo che abbiamo l'opportunità di eseguire un backup per il nostro io.
Quindi dovremmo assolutamente provarlo.
Quali dati sono stati inseriti qui?
Va bene.
E poi c'è questo.
Questo non è davvero interessante.
Saltiamo quindi questa parte e abbiamo il debugger Android integrato.
Parleremo di debug e applicazione alla fine di questo corso, perché questo argomento può essere
un po' più complesso.
Significa semplicemente che, avendo questa funzione abilitata, siamo autorizzati a collegarci a questo processo dell'applicazione.
Quindi ci è consentito eseguire il debug, il che è positivo per una prospettiva di attacco.
A dire il vero, se si costruisce in release o se si sta realizzando un bit di release della propria applicazione,
questo verrà automaticamente impostato su false.
Quindi non è spesso incluso, ma anche se non è incluso nel manifest XML di Android, questo file
qui può essere usato per abilitarlo.
Ancora una volta, diciamo che questo è stato impostato su false.
Questo significa che non possiamo eseguire il debug di questa applicazione per il momento?
Sì.
Ma cosa succede se stiamo semplicemente decodificando questa applicazione?
Quindi con lo strumento APK decodificare modificare il manifest XML di Android per abilitarlo ancora una volta.
Battete questa applicazione e installatela.
In questo modo avremmo un'abilitazione staccabile e potremmo collegarci ancora una volta a questa.
Quindi il segmento manifest di Android può essere utilizzato anche per abilitare alcune funzioni.
Ad esempio, le funzioni di debug.
OC Sì, assolutamente.
Bello.
Quindi ci sono alcuni, alcuni bei siti qui.
Ok.
Poi c'è l'estratto di Android, nativo, che si capovolge in avanti.
E questo significa semplicemente che se abbiamo librerie native incluse nella nostra applicazione, queste non
vengono più compresse.
Quindi questo aumenterà le dimensioni della nostra applicazione, ma a meno che non siano piccole, non ha alcun effetto
su di noi.
Quindi questo flick normalmente non è molto importante per noi, e questo solo se lo sviluppatore
ha scelto di comprimere o meno le librerie native, finché non parliamo di libertà, quando iniettiamo Frida in una libreria nativa,
allora questo deve essere false perché altrimenti iniettiamo Frida in una libreria non compressa e questo non
funzionerebbe.
Quindi, per il momento, possiamo semplicemente ignorarlo.
Se parliamo di Frida e dell'iniezione di Frida in una libreria nativa, torneremo su questo argomento
e deve essere impostato su false.
Va bene, perfetto.
Andiamo avanti.
Poi c'è questa icona.
Questa è l'icona dell'applicazione.
Non è molto importante.
Quindi, forse, facciamo in questo modo.
Non è importante per noi.
Poi c'è l'etichetta Android.
Anche questo non è importante.
Pertanto, eliminiamo questa.
E poi abbiamo la configurazione della sicurezza di rete di Android.
Questo è davvero importante per noi.
Sappiamo già che stiamo puntando alla versione 11 di Android, il che significa che dobbiamo anche soddisfare tutti i requisiti, i requisiti
di sicurezza relativi alla versione 11 di Android.
In questo caso, dobbiamo includere il nostro XML di configurazione della sicurezza di rete nella nostra applicazione.
Cosa sta facendo questo?
È relativo al certificato di pinning nella versione sette.
Non ci sono stati grandi cambiamenti per quanto riguarda l'assegnazione dei certificati.
Quindi l'appuntatura non è maggiore.
È maggiore della versione sette, il che significa che le applicazioni non si fidano più della memoria utente del
nostro smartphone.
Se ci si vuole fidare di loro, è necessario includerli in una configurazione di sicurezza di rete.
Inoltre, se abbiamo certificati propri e cose del genere, questo file è molto importante quando abbiamo a che fare
con il pinning dei certificati.
Per questo motivo, stiamo anche analizzando a fondo questo file, come usarlo e perché lo stiamo usando.
Per ora, l'unica cosa che dobbiamo ricordare è che se abbiamo questo file, allora dobbiamo assolutamente
controllarlo perché potrebbe esserci un certificato di pinning attivo in questa applicazione e queste
sono informazioni molto utili per aggirarlo.
Oppure, se questo file non è stato incluso, possiamo definire il nostro in questa applicazione e quindi siamo
in grado di riattivare l'archiviazione utente del nostro smartphone.
Quindi, sì, non preoccupatevi.
Ne parleremo più avanti.
Bene, allora abbiamo un'icona che riguarda la rotondità.
Non è molto importante.
È la stessa icona, ma solo come logo rotondo.
E poi abbiamo questo, che riguarda il formato a destra e a sinistra.
Quindi, se l'applicazione è in grado di gestirlo o non è importante, le quote del tema non sono importanti.
Fin qui tutto bene.
Le cose più importanti che stiamo ottenendo da questo, possiamo anche sbarazzarci di questo.
Queste sono le informazioni più importanti che possiamo ricavare da questo caso.
Quindi la nostra applicazione è un debugger.
È quindi possibile eseguire un backup e disporre di una configurazione personalizzata della sicurezza di rete che può essere utilizzata o utile
per bypassare il pinning dei certificati.
Infine, abbiamo l'estratto nativo flips uguale a false.
Ma, ad essere onesti, non è così importante.
Se non è incluso, possiamo semplicemente aggiungerlo e siamo a posto.
Va bene.
Queste sono le tre opzioni più importanti.
Andiamo avanti per rendere questo video non inutilmente lungo.
Prima un po' di pulizia.
Siamo già arrivati all'ultima parte.
Voglio dire, non abbiamo parlato di questi componenti qui.
Questi sono i quattro componenti chiave di un'applicazione Android.
E ne parleremo diffusamente in un paio di video.
Sono quindi molto importanti e devono essere definiti anche nell'esempio di manifest di Android.
Quindi, esaminando questo file, possiamo già capire cosa ha questa applicazione nel suo background.
Quindi, anche senza installare o dare un'occhiata a questo, possiamo vedere che ci sono delle attività.
Ad esempio, questa attività qui è un contenuto dello schermo, il che significa che abbiamo alcuni o due diversi layout
di schermo nelle nostre applicazioni.
Abbiamo ottenuto la schermata del profilo.
Quindi, ad esempio, questa potrebbe essere la schermata del profilo e abbiamo un'attività principale con una cartella di intenti.
Le cartelle di intenti sono cartelle in ascolto per determinati intenti, che in questo caso riguardano
la pressione di questa icona sullo smartphone.
Se si preme questa icona, viene attivata la cartella degli intenti e viene avviata la schermata dello smartphone,
l'attività principale.
Questo è il nostro punto di ingresso.
Non preoccupatevi, in seguito avremo una visione approfondita di tutti questi componenti.
Ok.
Questo è il nostro ingresso.
Quindi, in base a questo, sappiamo di avere due schermi.
Questo è il primo e questo è il secondo.
E poi possiamo vedere questo qui.
Questo è in servizio e il servizio è solo un'attività di sfondo.
Quindi il servizio in viene utilizzato quando è necessario eseguire un'attività ad alta intensità di risorse, perché non è consentito
farlo sul thread dell'interfaccia utente; ciò significa che se la nostra applicazione viene bloccata da un'attività lunga,
verrà terminata dal sistema.
Si tratta di un'operazione che dovrebbe avvenire in background.
Questo è il servizio in breve.
Ok, abbiamo un servizio che non sappiamo cosa stia facendo in base al nome.
Forse si tratta di una notifica migliore.
Potrebbe quindi accedere ad alcuni dati da un database meteo e recuperarli per fornire informazioni sulle nuove informazioni
migliori o cose del genere.
Dobbiamo analizzarlo nell'applicazione, ma sappiamo che c'è un qualche tipo di attività in background in esecuzione nella
nostra applicazione.
Va bene.
E poi, ultimo ma non meno importante.
Non ultimo, ma non per questo meno importante.
Questo qui.
Oh.
Mi dispiace.
Ho sbagliato il ping.
E questo qui.
Questo è il nostro.
Il nostro servizio meteorologico.
E questo e questo colore.
E questo è un ricevitore di trasmissione e un ricevitore di trasmissione.
Semplicemente un'informazione per le applicazioni.
Ad esempio, se stiamo ricevendo un SMS, abbiamo questa notifica, questa notifica audio e anche questo
pop-up sullo schermo che indica che abbiamo ricevuto un nuovo SMS e anche le applicazioni saranno informate
di questo evento che è stato ricevuto un SMS in questo momento.
Quindi si tratta semplicemente di un sistema di messaggistica.
Aggiungiamo anche questo qui.
Quindi, diciamo che qui possiamo vedere che stiamo informando tutte le applicazioni sui ricevitori di broadcasting in caso di servizi
di testo principali.
Quindi li esploreremo in modo approfondito in questa coda.
Per ora lo teniamo solo in questo modo.
C'è un evento o un ricevitore di trasmissione nella nostra applicazione.
Va bene.
Infine, abbiamo il fornitore di contenuti, che si limita a interagire
o a fornire contenuti.
Nella maggior parte dei casi si tratta di accessi al database.
Quindi la nostra applicazione potrebbe utilizzare un database in cui memorizzare alcune informazioni.
In questo caso, possiamo vedere che si chiama anche database utente.
Database utente.
Va bene.
Quindi la nostra applicazione potrebbe anche avere un database in cui memorizzare i dati dell'utente.
Ok.
Un'ultima cosa che voglio menzionare è che questo fornitore di contenuti ha il permesso di percorso abilitato
e possiamo vedere che questo permesso di percorso è ora solo un permesso di lettura delle informazioni dell'utente e questo
è stato definito qui.
Quindi, se qualcun altro vuole leggere le informazioni del database, deve richiedere questa autorizzazione.
Questo riguarda o è stato legato al fornitore di contenuti qui.
Quindi, se un'applicazione esterna cerca di leggere questi dati, deve già richiedere questa autorizzazione.
Ok.
Quindi, prima di tutto, non preoccupatevi se non riuscite a seguire tutte le attività del tempo, il ricevitore broadcast, i servizi,
il fornitore di contenuti.
Si tratta di argomenti distinti che tratteremo in dettaglio più avanti.
Voglio solo mostrarvi, analizzando questo file, quante informazioni riusciamo a ricavare.
Voglio dire, riassumiamo velocemente la situazione.
Quello che abbiamo qui.
Abbiamo attivato le funzioni di sicurezza Android fino alla versione 11 di Android.
Va bene.
E poi abbiamo il nostro identificatore unico su questa applicazione, che stiamo analizzando in questo momento, potrebbe interagire
con il database del contesto.
Può interagire o inviare dati e può anche accedere a file su archivi pubblici disponibili.
Va bene, allora.
Anche questo definisce il proprio permesso.
È la possibilità di fare il backup.
E qual era il terzo punto qui?
Sì, ha alcuni conflitti di sicurezza di rete personalizzati, il che significa che può essere molto utile se si ha a che fare
con il pinning dei certificati.
Quindi troveremo molte informazioni utili già al suo interno.
Poi ha alcuni componenti, ha almeno due schermi e un'attività in background e una forma di servizio
e un ricevitore di broadcast, che ascolta determinati eventi.
Inoltre, dispone di un database a cui possono accedere le applicazioni esterne che richiedono le autorizzazioni
personalizzate.
Va bene.
Si tratta di una cosa enorme basata solo su un singolo file di configurazione, non è vero?
Assolutamente sì.
Ecco perché questo file di configurazione è così importante per noi hacker di applicazioni e anche per me, che sono il
primo a vedere un'applicazione se ne analizzo una.
Va bene.
Quindi tutto ciò che abbiamo visto in questo momento, tutto ciò di cui abbiamo bisogno durante il nostro corso.
E ad essere onesti, credo che queste siano anche la maggior parte delle cose che si trovano in un file di configurazione
come questo qui.
Ok.
Quindi questo è tutto per questo video in questo momento.
Se avete domande, scrivete un messaggio sotto questo video.
Mi fa piacere ricevere qualche feedback e altro.
Non vedo l'ora di vederti nel prossimo video.