Bentornati.
Facciamo il video bonus relativo alla nostra attività di hacking.
Scriveremo quindi una nostra applicazione che esegua questo compito per avviare un'attività senza avere accesso
alla shell ADB.
Va bene.
Ok, andiamo.
Ok.
Eccoci quindi tornati a Ubuntu VM.
E sì, una cosa che vorrei menzionare qui è che non sono un grande fan del mostrare cose di cui non abbiamo
parlato finora, perché ora per avviare un'attività dobbiamo interagire con gli intenti e l'intensità
è qualcosa che non conosciamo al momento.
Ma non preoccupatevi, nel prossimo video vi forniremo un'ampia panoramica su Intense.
Si tratta quindi di una sorta di anteprima per quanto riguarda l'intensità.
Va bene.
Ok.
L'altra cosa è, voglio dire, questo qui, è un corso di app hacking.
Non è in fase di sviluppo.
Tuttavia, credo che sia una buona idea avere almeno un po' di conoscenza del processo di sviluppo di un'applicazione
per scrivere una semplice prova di concetto come quella che stiamo per fare ora.
Supponiamo di voler presentare l'ultimo risultato, aggirando l'attività di registrazione e avviando
direttamente l'attività p w list.
Quindi, se si deve spiegare questo al cliente, dobbiamo dirgli subito che un aggressore ha bisogno
di accedere alla shell ADB.
L'aggressore potrebbe quindi utilizzare il gestore delle attività per avviare l'applicazione.
Il cliente ovviamente risponderebbe qualcosa del tipo: "Se un utente malintenzionato ha bisogno dell'accesso
ADB, non lo consideriamo un problema perché non è un caso d'uso".
Ad essere onesti, il cliente avrebbe ragione, ma non per quanto riguarda la vulnerabilità in sé,
perché non abbiamo bisogno di accedere alla shell ADB per sfruttarla.
Potremmo farlo anche con un'applicazione dannosa e quindi dimostriamolo semplicemente al cliente
in questo momento.
Scriviamo una semplice applicazione e manteniamola il più semplice possibile.
Va bene, andiamo.
Per farlo, apriamo Android Studio.
Quindi è all'interno degli strumenti di Android studio ed eccolo qui.
Ho semplicemente avviato lo script di studio tortoise con la shell.
Va bene.
Ora l'ID viene caricato.
Ed eccolo qui.
Per creare una nuova applicazione, è sufficiente fare clic su Crea un nuovo progetto.
Ora dobbiamo scegliere lo scheletro del nostro progetto.
Potremmo usare qualcosa come un'attività di Google Maps e un'attività a schermo intero, un'attività di navigazione con
pulsanti e cose del genere.
Ma vogliamo mantenerlo il più semplice possibile e quindi scegliamo semplicemente un'attività vuota, perché scegliendo,
l'attività di acquisto e l'applicazione saranno già create per noi.
E qui c'è una specie di testo di Helloworld.
Non dobbiamo quindi preoccuparci di creare la nostra attività.
Abbiamo un bello scheletro che è abbastanza facile da usare.
Quindi andiamo avanti con un'attività vuota e ora dobbiamo semplicemente darle un nome.
Supponiamo che C si colleghi.
Scusate, diamo un nome.
Vedere se il log bypassa e questo è il nome del pacchetto che viene creato automaticamente.
Potremmo anche dargli un nome diverso, ad esempio.
Com.
Non importa.
Deve essere unico.
Ma va tutto bene e la posizione è sicura.
Questa è la sede del nostro progetto.
Lasciamo questo così com'è e poi, all'interno del linguaggio, mi piace usare Java, ma se avete familiarità con Kotlin allora potete
anche scegliere Kotlin.
Naturalmente.
Quindi mi limito a Java.
Per ultimo, ma non meno importante, abbiamo l'SDK minimo e risalgo ad Android nougat.
Ciò significa che la compatibilità della nostra applicazione è molto lontana, nel caso in cui si tratti
di una semplice prova di concetto e si voglia dimostrarla su uno smartphone con la versione 11 di Android, ad esempio.
Possiamo anche selezionare questo qui.
Ma se si vuole applicare questa applicazione a molti dispositivi, possiamo già vedere che questa applicazione funzionerebbe
approssimativamente solo sul 25% di questi dispositivi, perché gli altri sono più obsoleti al momento.
Per questo motivo, non abbiamo bisogno di interfacce utente sofisticate o cose del genere.
Possiamo tornare alla versione 7.
Funziona perfettamente.
E abbiamo già una compatibilità di circa il 90%.
Per ora è tutto.
Sì.
Facendo clic su Fine.
Ora il nostro progetto sarà creato e possiamo osservarlo come in fondo a questa pagina.
Quindi non è un granché come costruzione e l'intera applicazione è stata impostata.
Possiamo vedere che stiamo già visualizzando la nostra attività principale.
Questo è il punto di ingresso dell'applicazione e questo è il contenuto della schermata.
Al termine di questo processo, l'applicazione sarà assolutamente pronta per essere costruita e installata.
Quindi aspettiamo.
Ma credo che.
Sì.
Ok, bene.
È stata terminata.
Ok.
Vediamo cosa abbiamo qui.
Abbiamo la nostra attività principale e questo è il punto di ingresso della nostra applicazione.
La prima cosa che viene lanciata se si fa clic sulla nostra icona è questa parte qui.
E questo è piuttosto sorprendente, perché tutto ciò che dobbiamo fare è inserire il nostro codice in questo
metodo nel metodo on create.
Questo è il metodo che viene richiamato all'avvio dell'applicazione e tutto ciò che viene inserito
in questo metodo verrà eseguito automaticamente.
Va bene.
Quindi, se mettete il nostro codice qui, verrà eseguito, va bene.
All'interno del nostro metodo create.
Abbiamo alcune cose che abbiamo salvato sul palco dell'istanza.
Non ci occupiamo di questo aspetto.
La visualizzazione dei contenuti impostati è semplicemente il layout della nostra attività.
Quindi è stato definito e vediamo nel layout delle risorse questo.
Se facciamo doppio clic su questo file XML, vediamo che abbiamo un Hello World.
Quindi il file XML fornisce questa struttura per il nostro layout.
Ma non preoccupatevi, non dovete sapere nulla di questo.
Voglio quindi darvi una rapida introduzione a questo argomento.
E all'interno dell'esempio di trasmissione, daremo uno sguardo un po' più approfondito a questa applicazione.
Ok.
Quindi, per il momento, teniamo presente che un'attività si trova nel contenuto dello schermo.
Il contenuto dello schermo ha una forma di layout.
In questo caso, si chiama activity underscore main.
Possiamo anche passare al percorso del codice.
Poi si vedrà la struttura di questo layout.
Ma non ci occupiamo di ciò che questo.
Ciò significa che se avviamo questa applicazione, il contenuto dello schermo sarà visibile.
E suggerirei di costruire semplicemente questa applicazione e vedere cosa succede.
Al momento non abbiamo inserito nulla.
Questo è solo un commento.
Non si tratta di un codice, ma di un'applicazione già funzionante.
Bello, vero?
Quindi, come possiamo iniziare o come possiamo costruirlo?
E dove vogliamo che si svolga?
L'opzione più semplice è quella di utilizzare l'emulatore.
E la cosa bella è che abbiamo una connessione diretta nel nostro studio Android.
Quindi, per prima cosa, avviamo l'emulatore e poi installiamo l'applicazione, in modo da poter avviare l'emulatore
se andiamo nelle applicazioni, in alto, a destra.
E il direttore dell'AVD.
Poi abbiamo qui il nostro dispositivo Nexus e facciamo semplicemente clic su questo pulsante di riproduzione.
Ok.
A sinistra, vediamo il nostro emulatore.
Inoltre, riceviamo ancora una volta l'avviso che l'esecuzione di una virtualizzazione annidata non è una buona
idea, ma l'abbiamo già testata.
Va bene.
Possiamo trascinarlo e rilasciarlo?
Non ancora.
Dobbiamo quindi attendere l'avvio dell'emulatore.
Ok.
Sembra che ora sia così, se si fa clic sull'icona dell'alimentazione.
Sì.
Ecco quindi la nostra applicazione see ancora aperta.
Chiudiamo questa.
Ok.
Mettiamo questo a destra.
Ok.
Ora, se volete costruire e installare la nostra applicazione, tutto ciò che dobbiamo fare è semplicemente fare clic sull'icona di visualizzazione.
Questo, questo eseguirà la nostra applicazione e sulla sinistra possiamo vedere che Android Studio ha già effettuato una connessione
alla nostra macchina virtuale.
Quindi, se facciamo clic su questo emulatore, possiamo vederlo.
Sì, quindi possiamo vedere che questo qui è il nostro dispositivo in esecuzione e vogliamo installare la nostra applicazione
su questo dispositivo in esecuzione.
Quindi, facendo clic sul pulsante play, apriamo nuovamente l'emulatore.
Il grande dibattito è in corso nella parte inferiore e quindi effettueremo una connessione ADB e installeremo questa applicazione
senza fare nulla.
Quindi tengo le mani in alto e vediamo.
Ok.
Questa costruzione potrebbe richiedere un po' di tempo se la si esegue per la prima volta, quindi spero che non ci voglia
troppo tempo.
Sì.
Ecco fatto.
Ottimo.
Piccola vacanza finita.
Ora inizia l'attività.
E.
Ecco fatto.
Bypass di chiusura Seif.
Ciao mondo.
Abbiamo scritto la nostra prima applicazione.
Ok, per essere onesti, al momento non abbiamo fatto nulla, ma questo è un aspetto che cambieremo.
Ok, quindi ora abbiamo la nostra applicazione e il compito che la nostra applicazione deve svolgere
è avviare l'attività p w list dell'applicazione CV, perché avviandola possiamo eludere la schermata di registrazione
e accedere alla funzione interna dell'insieme.
Ok, allora mettiamolo subito insieme.
La prima cosa da sapere è l'esatta attività che vogliamo avviare.
Per ottenere queste informazioni, è sufficiente consultare nuovamente l'applicazione del CV.
Quindi, all'interno delle applicazioni e qui abbiamo l'esempio del manifest di Android.
Quindi vediamo.
Sì.
Questo è il nostro file.
Ci siamo già osservati.
Bello.
Ok.
In questo caso, siamo costretti a farlo.
Abbiamo l'elenco dei file e l'attività di selezione dei file che vengono esportati.
E anche l'attività di chiusura principale che viene esportata implicitamente.
Cioè, dobbiamo avviare solo un'attività, quella dell'elenco DPW, perché da lì possiamo raggiungere anche l'attività
di selezione dei file.
Quindi non ci dà un vantaggio.
Se li abbiamo separati, possiamo semplicemente accedere a questo tramite l'attività dell'elenco P.
Quindi tutto ciò che la nostra applicazione deve fare è esattamente come abbiamo
fatto nella parte pratica per quanto riguarda il gestore delle attività, dobbiamo dire alla nostra
applicazione di inviare la richiesta per avviare l'attività com nwr example c slash p w list.
Va bene.
Ok, allora cerchiamo di ottenere queste informazioni.
Ok.
Questo è il nome del pacchetto.
Inoltre, prendiamo il nome dell'attività.
In questo.
Quindi la domanda è: come possiamo farlo?
E la risposta a questa domanda è un'intenzione.
E non preoccupatevi, nei prossimi video daremo un'occhiata approfondita a Intense.
Quindi, per ora, consideriamola una sorta di anteprima.
Va bene.
Quindi un intento è semplicemente un tipo di oggetto messaggio.
E possiamo iniziare certe cose con questo oggetto messaggio.
Ad esempio, possiamo avviare delle attività.
Possiamo interagire con i ricevitori broadcast e anche con i servizi.
Nel nostro caso, ora vogliamo avviare un'attività e possiamo definire il nostro oggetto messaggio e poi
inviarlo con il metodo start activity e il nostro oggetto messaggio.
Nel nostro intento.
Dobbiamo definire il componente che vogliamo avviare, che è questo qui in questa parte, e poi l'applicazione o lo smartphone
verifica se siamo autorizzati a eseguire questa azione e, in caso affermativo, lo smartphone
accetta il nostro messaggio.
E sì, lo smartphone lo esegue semplicemente.
Va bene.
E allora facciamo così.
Per prima cosa, occorre definire o creare un nuovo oggetto intent.
E possiamo farlo nel modo seguente.
Diamo un nome a questo intento e creiamo un nuovo oggetto intento.
Ok.
Ed eccoci già a ricevere la nostra prima freccia.
Voglio dire, bello, no?
Abbiamo scritto solo una riga ed è già stata letta.
Ma questo, voglio dire, è facile da risolvere: l'applicazione si lamenta dell'intento della
classe non è noto al momento, ma ci offre anche una soluzione.
Vogliamo includere questa classe nella nostra applicazione?
E sì, questo è esattamente ciò che vogliamo avere.
Per questo motivo facciamo clic sull'intento e poi premiamo tutti i tasti di invio e il problema è stato risolto e con l'importazione
ora abbiamo importato l'intento del contenuto di Android.
Ok, fin qui tutto bene.
Non era così caldo.
Giusto.
Ora dobbiamo definire il nostro oggetto messaggio.
Dobbiamo quindi dire quale attività vogliamo avviare.
Dobbiamo quindi affrontare questo problema e quindi usiamo il nome del pacchetto e anche l'attività, il riferimento
alla classe.
Possiamo farlo nel modo seguente.
Ora stiamo usando il nostro intento e poi stiamo usando il componente dot set.
E all'interno di set component, possiamo vedere che dobbiamo fornire un parametro e il parametro è il nome del componente.
Quindi, all'interno del nostro componente impostato, dobbiamo definire il nome del componente.
Non ne abbiamo ancora definito uno, quindi stiamo creando un nuovo nome per il componente.
E se ora avete due opzioni, voglio dire, potremmo anche dividerlo.
Forse questo è un po' più facile da vedere.
Quindi dividiamo la questione.
Nome del componente.
Ok.
Quindi, sì, è più facile.
Quindi il nome di questo componente sarà applicato in seguito qui.
Ma prima dobbiamo definire il nome del componente.
Lasciatemi sistemare questo.
Ok.
Quindi ora.
Ora possiamo definire il nome del componente.
Il nome del componente consiste semplicemente nel nome del nostro pacchetto, che è questo.
Il secondo parametro è il riferimento alla classe.
Questo è il nostro primo lavoro.
Applichiamo questa stringa di essenza.
Ok.
E possiamo già vedere che il primo è una stringa del nome del pacchetto e il secondo parametro è una stringa del
nome della classe.
Il nome della classe è semplicemente P. W. Elenco.
Quindi prendiamo questo.
Ok.
E questo è tutto?
Sì.
Qui si definisce il nome di un nuovo componente.
Quindi utilizziamo il nostro oggetto messaggio e impostiamo il nome del componente.
E tutto ciò che dobbiamo fare ora è semplicemente iniziare.
Ok, non sono sicuro che questo sia più facile per voi.
Potremmo anche scriverlo in versione più breve in questa.
Quindi è esattamente la stessa cosa.
Ora li avete visti entrambi.
E sì, si può decidere cosa è più facile da leggere.
Ok, ora iniziamo semplicemente la nostra attività.
Esiste già un metodo per attività come questa e il metodo si chiama start activity e possiamo vedere
che abbiamo bisogno di un parametro intent.
Facciamo quindi doppio clic su questo e forniamo il nostro intento e questo è tutto ciò che
dobbiamo fare per avviare il codice, per avviare la seguente attività.
Va bene.
Quindi, quando installiamo la nostra applicazione e apriamo questa, apriamo l'attività principale.
Questa attività principale inizia con la creazione.
Questo avviene automaticamente.
Non dobbiamo fare nulla e basta cliccare sull'icona dell'app.
E all'interno di questo metodo creiamo automaticamente un nuovo intento.
Stiamo impostando un nuovo componente.
Quindi stiamo definendo.
Vogliamo indirizzare la seguente classe e il seguente nome di pacchetto, per poi dire semplicemente: Avvia
questa attività.
Quindi la nostra applicazione invia questo intento allo smartphone.
Lo smartphone riceve questo intento, lo cerca e dice: "Ok, fammi provare".
Se si ha l'autorizzazione o la possibilità di avviare questa attività, nel caso in cui l'abbiamo, allora l'attività viene
visualizzata, altrimenti si ottiene un errore.
Va bene, facciamo così.
Quindi facciamo semplicemente clic su questa applicazione.
Quindi l'app verrà costruita e installata nuovamente.
Va bene.
Osserviamo questo aspetto sullo smartphone.
A questo punto dovrebbe apparire la nostra applicazione, ma in seguito dovrebbero essere avviate
direttamente le applicazioni del CV.
Quindi vediamo.
Questa è la nostra applicazione e sembra buona.
Non ha un bell'aspetto.
Ok, non ha un bell'aspetto.
Vediamo, abbiamo anche questo errore di locket e credo che sia legato al nome della classe.
Credo che nel nostro codice applicativo questo punto non sia necessario.
Ma osserviamo questo.
Ok.
Quindi avrà il medaglione.
E c'era questo punteggio non rispettato.
Ci sono molti incidenti.
Ok, saliamo un po' più in alto.
Magari cerchiamo il nostro pacchetto qui.
Quindi.
Com?
Sì.
Se si cerca questo ora, è più facile trovare questo errore.
Qui possiamo vedere che l'attività non è stata trovata.
Eccezione.
Impossibile trovare l'esplicito.
Dovrete esaminare questo.
Cosa significa attività di classe.
Ed eccolo qui.
Ok.
Quindi l'attività dell'elenco DPW non è stata dichiarata o non è stata trovata nel sistema in questo momento.
Il problema riguarda il punto, quindi avrei supposto che funzionasse, ma non funziona.
Ciò significa che, oltre al nome del pacchetto, dobbiamo fornire anche il nome completo della classe.
Ciò significa che questo punto è semplicemente in riferimento a questo.
Quindi dobbiamo aggiungerlo, credo, nel modo seguente.
È il nome del pacchetto.
Sì.
E questo ha ora il percorso di classe completo per la nostra P. Attività della lista W.
Ok, vediamo se funziona, eseguiamolo e apriamo l'emulatore.
Finora non è successo nulla.
Non ne sono sicuro.
Vediamo.
Sì.
È stata avviata una bella attività di inganno e possiamo vedere che sta funzionando proprio ora.
Per dimostrare questo comportamento è sufficiente chiudere nuovamente l'applicazione.
Quindi eccoci di nuovo qui.
Purtroppo l'emulatore si è bloccato e ho dovuto riavviarlo.
Ma non è un grosso problema.
Si è semplicemente riavviato.
E poi siamo pronti a partire.
Va bene.
Se ora si vuole dimostrare questo comportamento, non è necessario avere Android, Studio aperto o cose del
genere.
Quindi chiudiamo questo qui.
Ok.
Ora abbiamo tutto sul nostro smartphone.
Tutto ciò che dobbiamo fare è mostrarlo al cliente.
Bene, avviamo questa applicazione.
Dobbiamo quindi inserire una password che non conosciamo.
Eseguiamo quindi questo test.
La password non è corretta.
Ok, noi.
Noi.
Non possiamo accedere al momento, ma torniamo indietro.
E cosa.
Avviamo la nostra applicazione, l'applicazione di bypass del blocco sicuro.
Quindi, procediamo in 3 contro 1.
Ok.
Lui.
Verrà aperto e noi non faremo nulla.
Ora siamo in questa applicazione.
Quindi se si va, ad esempio, nelle impostazioni.
Poi possiamo anche eseguire tutto il materiale.
Vediamo come partire dalla scheda SD.
Abbiamo già dei rinforzi?
Cioè, abbiamo creato una volta, ma non sono sicuro che sia stata cancellata.
Sì.
Sì, possiamo vedere che abbiamo accesso al backup.
Ok.
In questo modo è possibile aggirare la schermata di registrazione anche se non si ha accesso alla shell ADB.
Va bene.
Ok.
Quindi questo è tutto per questo video al momento.
E il prossimo lo analizzeremo a fondo nel testo, perché è straordinario.
Inoltre, se dovete esplorarli.
Non vedo l'ora di vedervi lì.